Commit 1b8cd2d9 by Dan Sinclair

Copy build artifacts to CMAKE_BINARY_DIR.

Currently when the build executes it copies things like .so files and the vulkan .icd file to the CMAKE_CURRENT_SOURCE_DIR/out/<platform> directory. This is fine in a normal swiftshader build but if you embed swiftshader into another project this ends up being something like: third_party/swiftshader/out/<platform> which is not what is desired. This CL changes the files to get written to the CMAKE_BINARY_DIR. This means it will go into the directory form which cmake was run. This means for a build setup as per the README, build/<platform>. This also allows generating different .icd and .so files for Release and Debug if you setup different build directories. Bug: b/123752208 Change-Id: If2e8c70ca2d35351c02f7bbe56ff77a04d538373 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27188 Presubmit-Ready: Ben Clayton <bclayton@google.com> Tested-by: 's avatarBen Clayton <bclayton@google.com> Reviewed-by: 's avatarBen Clayton <bclayton@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent 9b156615
......@@ -2194,8 +2194,8 @@ if(BUILD_EGL)
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libEGL>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> $<TARGET_FILE_DIR:libEGL>/translator/${LIB_PREFIX}EGL_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
endif()
......@@ -2214,8 +2214,8 @@ if(BUILD_GLESv2)
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libGLESv2>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> $<TARGET_FILE_DIR:libGLESv2>/translator/${LIB_PREFIX}GLES_V2_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
endif()
......@@ -2260,12 +2260,12 @@ if(BUILD_VULKAN)
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libvk_swiftshader>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> $<TARGET_FILE_DIR:libvk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> ${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
)
configure_file(
"${VULKAN_DIR}/vk_swiftshader_icd.json.tmpl"
"${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json")
"${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json")
endif()
###########################################################
......
......@@ -87,15 +87,15 @@ Preparing the server
Testing OpenGL ES
-----------------
20. a) Assuming you already built SwiftShader, copy these two files:
20. a) Assuming you already built SwiftShader in the `build` folder, copy these two files:
`libEGL.dll`\
`libGLESv2.dll`
From:
`<path to SwiftShader>\out\Release_x64` or\
`<path to SwiftShader>\out\Debug_x64`
`<path to SwiftShader>\build\Release_x64` or\
`<path to SwiftShader>\build\Debug_x64`
To:
......@@ -106,8 +106,8 @@ Testing Vulkan
20. b) Assuming you already built SwiftShader, copy and rename this file:
`<path to SwiftShader>\out\Release_x64\vk_swiftshader.dll` or\
`<path to SwiftShader>\out\Debug_x64\vk_swiftshader.dll`
`<path to SwiftShader>\build\Release_x64\vk_swiftshader.dll` or\
`<path to SwiftShader>\build\Debug_x64\vk_swiftshader.dll`
To:
......@@ -171,7 +171,7 @@ Running dEQP Vulkan tests on Linux
We do this by setting the `VK_ICD_FILENAMES` environment variable to point to SwiftShader's `vk_swiftshader_icd.json` file. Replace (or `export`) `$SWIFTSHADER_ROOT` to the root checkout directory of SwiftShader, and type:
`export VK_ICD_FILENAMES=$SWIFTSHADER_ROOT/out/Linux/vk_swiftshader_icd.json`
`export VK_ICD_FILENAMES=$SWIFTSHADER_ROOT/build/Linux/vk_swiftshader_icd.json`
6. Run the tests:
......
{
"file_format_version": "1.0.0",
"ICD": {
"library_path": "${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}",
"library_path": "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}",
"api_version": "1.0.5"
}
}
\ No newline at end of file
}
......@@ -47,14 +47,14 @@ bool Driver::loadSwiftShader()
{
#if OS_WINDOWS
# if defined(NDEBUG)
return load("../../out/Release_x64/vk_swiftshader.dll");
return load("../../build/Release_x64/vk_swiftshader.dll");
# else
return load("../../out/Debug_x64/vk_swiftshader.dll");
return load("../../build/Debug_x64/vk_swiftshader.dll");
# endif
#elif OS_MAC
return load("./out/Darwin/libvk_swiftshader.dylib");
return load("./build/Darwin/libvk_swiftshader.dylib");
#elif OS_LINUX
return load("./out/Linux/libvk_swiftshader.so");
return load("./build/Linux/libvk_swiftshader.so");
#else
# error Unimplemented platform
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment