CMake: Fix linux build with SWIFTSHADER_BUILD_PVR
The targets `libGLESv2` and `libEGL` are no longer public to the root cmake list.
Just move these copy ops into the subdirectory cmake rules without the PVR condition - the copy is cheap enough to do whether we're building PVR or not.
Bug: b/145758253
Change-Id: Ic28331e3797c78e4910332fce934c06c132c3aa8
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43710
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05d9c5d..7399105 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1093,21 +1093,14 @@
if(NOT APPLE)
# Copy the 'loader' library to the bin/ directory
# where the PowerVR executables are placed.
- add_custom_command(
- TARGET vk_swiftshader
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/bin/${VULKAN_API_LIBRARY_NAME}
- )
- add_custom_command(
- TARGET libGLESv2
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libGLESv2>
- )
- add_custom_command(
- TARGET libEGL
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libEGL>
- )
+ if(SWIFTSHADER_BUILD_VULKAN)
+ add_custom_command(
+ TARGET vk_swiftshader
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/bin/${VULKAN_API_LIBRARY_NAME}
+ )
+ endif()
endif()
# Samples known to work well
diff --git a/src/OpenGL/libEGL/CMakeLists.txt b/src/OpenGL/libEGL/CMakeLists.txt
index 50e0983..de19295 100644
--- a/src/OpenGL/libEGL/CMakeLists.txt
+++ b/src/OpenGL/libEGL/CMakeLists.txt
@@ -115,4 +115,8 @@
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_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+
+ # Copy to ${CMAKE_BINARY_DIR}/bin so the library sits next to the PVR samples.
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libEGL>
)
diff --git a/src/OpenGL/libGLESv2/CMakeLists.txt b/src/OpenGL/libGLESv2/CMakeLists.txt
index de05ec2..ec28912 100644
--- a/src/OpenGL/libGLESv2/CMakeLists.txt
+++ b/src/OpenGL/libGLESv2/CMakeLists.txt
@@ -133,4 +133,8 @@
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_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
-)
+
+ # Copy to ${CMAKE_BINARY_DIR}/bin so the library sits next to the PVR samples.
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libGLESv2>
+)
\ No newline at end of file