CMake: split out turbo-cov target
Bug: b/145758253
Change-Id: Ifc97d3f833fcf41098ed24aad9cac26f51c28df3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43870
Tested-by: Antonio Maiorano <amaiorano@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f818244..ff43352 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -734,18 +734,7 @@
add_subdirectory(src/Vulkan) # Add vk_swiftshader target
if(SWIFTSHADER_EMIT_COVERAGE)
- add_executable(turbo-cov ${TESTS_DIR}/regres/cov/turbo-cov/main.cpp)
- target_link_libraries(turbo-cov llvm-with-cov)
-
- # Emit a coverage-toolchain.txt file next to the vk_swiftshader_icd.json
- # file so that regres can locate the LLVM toolchain used to build the
- # .so file. With this, the correct llvm-cov and llvm-profdata tools
- # from the same toolchain can be located.
- get_filename_component(COMPILER_TOOLCHAIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)
- file(GENERATE
- OUTPUT "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/coverage-toolchain.txt"
- CONTENT "{\"llvm\": \"${COMPILER_TOOLCHAIN_DIR}\", \"turbo-cov\": \"$<TARGET_FILE:turbo-cov>\"}"
- )
+ add_subdirectory(${TESTS_DIR}/regres/cov/turbo-cov)
endif()
endif()
diff --git a/tests/regres/cov/turbo-cov/CMakeLists.txt b/tests/regres/cov/turbo-cov/CMakeLists.txt
new file mode 100644
index 0000000..d17cbaf
--- /dev/null
+++ b/tests/regres/cov/turbo-cov/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+add_executable(turbo-cov
+ main.cpp
+)
+
+set_target_properties(turbo-cov PROPERTIES
+ FOLDER "Tests"
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
+)
+
+target_link_libraries(turbo-cov
+ PRIVATE
+ llvm-with-cov
+)
+
+# Emit a coverage-toolchain.txt file next to the vk_swiftshader_icd.json
+# file so that regres can locate the LLVM toolchain used to build the
+# .so file. With this, the correct llvm-cov and llvm-profdata tools
+# from the same toolchain can be located.
+get_filename_component(COMPILER_TOOLCHAIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)
+file(GENERATE
+ OUTPUT "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/coverage-toolchain.txt"
+ CONTENT "{\"llvm\": \"${COMPILER_TOOLCHAIN_DIR}\", \"turbo-cov\": \"$<TARGET_FILE:turbo-cov>\"}"
+)