OSDN Git Service

Copy build artifacts to CMAKE_BINARY_DIR.
authorDan Sinclair <dsinclair@google.com>
Thu, 14 Mar 2019 14:51:05 +0000 (10:51 -0400)
committerDan Sinclair <dsinclair@google.com>
Fri, 15 Mar 2019 00:34:59 +0000 (00:34 +0000)
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: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

CMakeLists.txt
docs/dEQP.md
src/Vulkan/vk_swiftshader_icd.json.tmpl
tests/VulkanUnitTests/Driver.cpp

index b892ca7..b91dc7e 100644 (file)
@@ -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()
 
 ###########################################################
index e9524dd..413588b 100644 (file)
@@ -87,15 +87,15 @@ Preparing the server
 Testing OpenGL ES\r
 -----------------\r
 \r
-20. a) Assuming you already built SwiftShader, copy these two files:\r
+20. a) Assuming you already built SwiftShader in the `build` folder, copy these two files:\r
 \r
     `libEGL.dll`\\r
     `libGLESv2.dll`\r
 \r
     From:\r
 \r
-    `<path to SwiftShader>\out\Release_x64` or\\r
-    `<path to SwiftShader>\out\Debug_x64`\r
+    `<path to SwiftShader>\build\Release_x64` or\\r
+    `<path to SwiftShader>\build\Debug_x64`\r
 \r
     To:\r
 \r
@@ -106,8 +106,8 @@ Testing Vulkan
 \r
 20. b) Assuming you already built SwiftShader, copy and rename this file:\r
 \r
-    `<path to SwiftShader>\out\Release_x64\vk_swiftshader.dll` or\\r
-    `<path to SwiftShader>\out\Debug_x64\vk_swiftshader.dll`\r
+    `<path to SwiftShader>\build\Release_x64\vk_swiftshader.dll` or\\r
+    `<path to SwiftShader>\build\Debug_x64\vk_swiftshader.dll`\r
 \r
     To:\r
 \r
@@ -171,7 +171,7 @@ Running dEQP Vulkan tests on Linux
 \r
    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:\r
 \r
-   `export VK_ICD_FILENAMES=$SWIFTSHADER_ROOT/out/Linux/vk_swiftshader_icd.json`\r
+   `export VK_ICD_FILENAMES=$SWIFTSHADER_ROOT/build/Linux/vk_swiftshader_icd.json`\r
 \r
 6. Run the tests:\r
 \r
index 5092232..5de880d 100644 (file)
@@ -1,7 +1,7 @@
 {\r
   "file_format_version": "1.0.0",\r
   "ICD": {\r
-    "library_path": "${CMAKE_CURRENT_SOURCE_DIR}/out/${CMAKE_SYSTEM_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}",\r
+    "library_path": "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}",\r
     "api_version": "1.0.5"\r
   }\r
-}
\ No newline at end of file
+}\r
index cb2645c..f059178 100644 (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