Add <MODULE>-package static lib targets for all modules
authorPyry Haulos <phaulos@google.com>
Tue, 15 Nov 2016 21:54:58 +0000 (13:54 -0800)
committerPyry Haulos <phaulos@google.com>
Thu, 17 Nov 2016 18:50:26 +0000 (13:50 -0500)
This unifies single-binary and per-package binary builds somewhat, and
makes it easier to add additional binaries that source test cases from
existing test packages.

Change-Id: I15f47b1fea530ed28a987f112be29c5b42fd21f3

24 files changed:
CMakeLists.txt
external/vulkancts/modules/vulkan/CMakeLists.txt
external/vulkancts/modules/vulkan/api/CMakeLists.txt
external/vulkancts/modules/vulkan/binding_model/CMakeLists.txt
external/vulkancts/modules/vulkan/clipping/CMakeLists.txt
external/vulkancts/modules/vulkan/compute/CMakeLists.txt
external/vulkancts/modules/vulkan/draw/CMakeLists.txt
external/vulkancts/modules/vulkan/dynamic_state/CMakeLists.txt
external/vulkancts/modules/vulkan/fragment_ops/CMakeLists.txt
external/vulkancts/modules/vulkan/geometry/CMakeLists.txt
external/vulkancts/modules/vulkan/image/CMakeLists.txt
external/vulkancts/modules/vulkan/memory/CMakeLists.txt
external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
external/vulkancts/modules/vulkan/query_pool/CMakeLists.txt
external/vulkancts/modules/vulkan/rasterization/CMakeLists.txt
external/vulkancts/modules/vulkan/shaderexecutor/CMakeLists.txt
external/vulkancts/modules/vulkan/shaderrender/CMakeLists.txt
external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt
external/vulkancts/modules/vulkan/ssbo/CMakeLists.txt
external/vulkancts/modules/vulkan/synchronization/CMakeLists.txt
external/vulkancts/modules/vulkan/tessellation/CMakeLists.txt
external/vulkancts/modules/vulkan/texture/CMakeLists.txt
external/vulkancts/modules/vulkan/ubo/CMakeLists.txt
external/vulkancts/modules/vulkan/wsi/CMakeLists.txt

index 8cdb293..9fb0f9a 100644 (file)
@@ -189,55 +189,62 @@ macro (target_copy_files target dep_name files)
        endif ()
 endmacro (target_copy_files)
 
+set(MODULE_LIB_TARGET_POSTFIX  "-package")
+set(MODULE_DATA_TARGET_POSTFIX "-data")
+
 # Macro for adding dEQP module
+# This adds 3 targets:
+#      ${MODULE_NAME}-package:         Static library that contains all SRCS and links to LIBS
+#      ${MODULE_NAME}-data:            Custom target that is used for data file copies
+#      ${MODULE_NAME}:                         Executable binary (if supported by the platform)
 macro (add_deqp_module MODULE_NAME SRCS LIBS ENTRY)
-       if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
-               # Single-binary targets
-               add_library(${MODULE_NAME} STATIC ${SRCS})
-               target_link_libraries(${MODULE_NAME} ${LIBS})
-
-               set(DEQP_MODULE_LIBRARIES               ${DEQP_MODULE_LIBRARIES} ${MODULE_NAME})
-               set(DEQP_MODULE_ENTRY_POINTS    ${DEQP_MODULE_ENTRY_POINTS} "${CMAKE_CURRENT_SOURCE_DIR}/${ENTRY}")
-
-               # Forward to parent scope
-               set(DEQP_MODULE_LIBRARIES               ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
-               set(DEQP_MODULE_ENTRY_POINTS    ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
-
-       else ()
-               # Separate binary per target
-               add_executable(${MODULE_NAME} ${CMAKE_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY} ${SRCS})
-               target_link_libraries(${MODULE_NAME} tcutil-platform ${LIBS})
+
+       # Library target
+       add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS})
+       target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS})
+
+       set(DEQP_MODULE_LIBRARIES               ${DEQP_MODULE_LIBRARIES} "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
+       set(DEQP_MODULE_ENTRY_POINTS    ${DEQP_MODULE_ENTRY_POINTS} "${CMAKE_CURRENT_SOURCE_DIR}/${ENTRY}")
+
+       # Forward to parent scope
+       set(DEQP_MODULE_LIBRARIES               ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
+       set(DEQP_MODULE_ENTRY_POINTS    ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
+
+       if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+               # Executable target
+               add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
+               target_link_libraries(${MODULE_NAME} tcutil-platform "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
                target_copy_files(${MODULE_NAME} platform-libs-${MODULE_NAME} "${DEQP_PLATFORM_COPY_LIBRARIES}")
        endif ()
 
        # Data file target
-       add_custom_target(${MODULE_NAME}-data)
-       add_dependencies(${MODULE_NAME} ${MODULE_NAME}-data)
+       add_custom_target("${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}")
+       add_dependencies("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}")
 endmacro (add_deqp_module)
 
 # Macro for adding data dirs to module
 macro (add_data_dir MODULE_NAME SRC_DIR DST_DIR)
-       if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${DST_DIR})
+       if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX)
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${DST_DIR})
 
        elseif (DE_OS_IS_ANDROID)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_BINARY_DIR}/assets/${DST_DIR})
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_BINARY_DIR}/assets/${DST_DIR})
 
        elseif (DE_OS_IS_IOS)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_BINARY_DIR}/\${CONFIGURATION}\${EFFECTIVE_PLATFORM_NAME}/deqp.app/${DST_DIR})
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_DIR} ${CMAKE_BINARY_DIR}/\${CONFIGURATION}\${EFFECTIVE_PLATFORM_NAME}/deqp.app/${DST_DIR})
        endif ()
 endmacro (add_data_dir)
 
 # Macro for adding individual data files to module
 macro (add_data_file MODULE_NAME SRC_FILE DST_FILE)
-       if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DST_FILE})
+       if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX)
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DST_FILE})
 
        elseif (DE_OS_IS_ANDROID)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_BINARY_DIR}/assets/${DST_FILE})
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_BINARY_DIR}/assets/${DST_FILE})
 
        elseif (DE_OS_IS_IOS)
-               add_custom_command(TARGET ${MODULE_NAME}-data POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_BINARY_DIR}/\${CONFIGURATION}\${EFFECTIVE_PLATFORM_NAME}/deqp.app/${DST_FILE})
+               add_custom_command(TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FILE} ${CMAKE_BINARY_DIR}/\${CONFIGURATION}\${EFFECTIVE_PLATFORM_NAME}/deqp.app/${DST_FILE})
        endif ()
 endmacro (add_data_file)
 
index c6804da..61a037e 100644 (file)
@@ -50,7 +50,7 @@ include_directories(
        geometry
        )
 
-set(DEQP_VK_COMMON_SRCS
+set(DEQP_VK_SRCS
        vktTestCase.cpp
        vktTestCase.hpp
        vktTestCaseUtil.cpp
@@ -67,7 +67,7 @@ set(DEQP_VK_COMMON_SRCS
        vktInfoTests.hpp
        )
 
-set(DEQP_VK_COMMON_LIBS
+set(DEQP_VK_LIBS
        tcutil
        vkutil
        glutil
@@ -96,18 +96,6 @@ set(DEQP_VK_COMMON_LIBS
        deqp-vk-geometry
        )
 
-add_library(deqp-vk-common STATIC ${DEQP_VK_COMMON_SRCS})
-target_link_libraries(deqp-vk-common ${DEQP_VK_COMMON_LIBS})
-add_dependencies(deqp-vk-common deqp-vk-data)
-
-set(DEQP_VK_SRCS       )
-set(DEQP_VK_LIBS       deqp-vk-common)
-
-if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)
-       add_executable(vk-build-programs vktBuildPrograms.cpp)
-       target_link_libraries(vk-build-programs deqp-vk-common)
-endif ()
-
 if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4))
     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
 endif ()
@@ -115,3 +103,8 @@ endif ()
 add_deqp_module(deqp-vk "${DEQP_VK_SRCS}" "${DEQP_VK_LIBS}" vktTestPackageEntry.cpp)
 
 add_data_dir(deqp-vk ../../data/vulkan vulkan)
+
+if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)
+       add_executable(vk-build-programs vktBuildPrograms.cpp)
+       target_link_libraries(vk-build-programs deqp-vk${MODULE_LIB_TARGET_POSTFIX})
+endif ()
index 8bfda38..5aa77c4 100644 (file)
@@ -38,7 +38,6 @@ set(DEQP_VK_API_SRCS
        )
 
 set(DEQP_VK_API_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 348b363..fe3e727 100644 (file)
@@ -10,7 +10,6 @@ set(DEQP_VK_BINDING_MODEL_SRCS
        )
 
 set(DEQP_VK_BINDING_MODEL_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 2fb6331..02f636f 100644 (file)
@@ -8,7 +8,6 @@ set(DEQP_VK_CLIPPING_SRCS
        )
 
 set(DEQP_VK_CLIPPING_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 6460db3..9f0b84e 100644 (file)
@@ -14,7 +14,6 @@ set(DEQP_VK_COMPUTE_SRCS
        )
 
 set(DEQP_VK_COMPUTE_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index e7a06c5..54a0a51 100644 (file)
@@ -25,7 +25,6 @@ set(DEQP_VK_DRAW_SRCS
 )
 
 set(DEQP_VK_DRAW_LIBS
-       deqp-vk-common
        tcutil
        vkutil
 )
index fab07eb..a4149b7 100644 (file)
@@ -22,7 +22,6 @@ set(DEQP_VK_DYNAMIC_STATE_SRCS
 )
 
 set(DEQP_VK_DYNAMIC_STATE_LIBS
-       deqp-vk-common
        deqp-vk-draw
        tcutil
        vkutil
index 7bc9fb0..90347a4 100644 (file)
@@ -14,7 +14,6 @@ set(DEQP_VK_FRAGMENT_OPS_SRCS
        )
 
 set(DEQP_VK_FRAGMENT_OPS_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index e7a7b91..d161a7b 100644 (file)
@@ -22,7 +22,6 @@ set(DEQP_VK_GEOMETRY_SRCS
        )
 
 set(DEQP_VK_GEOMETRY_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index cafca7c..8922c19 100644 (file)
@@ -22,7 +22,6 @@ set(DEQP_VK_IMAGE_SRCS
        )
 
 set(DEQP_VK_IMAGE_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 941fbfc..9b5bb75 100644 (file)
@@ -14,7 +14,6 @@ set(DEQP_VK_MEMORY_SRCS
        )
 
 set(DEQP_VK_MEMORY_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 4963575..ee771ca 100644 (file)
@@ -57,7 +57,6 @@ set(DEQP_VK_PIPELINE_SRCS
        )
 
 set(DEQP_VK_PIPELINE_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        referencerenderer
index 7ed2670..5d4253f 100644 (file)
@@ -11,7 +11,6 @@ set(DEQP_VK_QUERY_POOL_SRCS
 )
 
 set(DEQP_VK_QUERY_POOL_LIBS
-       deqp-vk-common
        deqp-vk-draw
        tcutil
        vkutil
index f6a0302..9121d0a 100644 (file)
@@ -6,7 +6,6 @@ set(DEQP_VK_RASTERIZATION_SRCS
        )
 
 set(DEQP_VK_RASTERIZATION_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 6f79231..ec1bc9e 100644 (file)
@@ -1,26 +1,25 @@
 include_directories(..)
 
 set(DEQP_VK_SHADEREXECUTOR_SRCS
-   vktShaderExecutor.cpp
-   vktShaderExecutor.hpp
-   vktShaderBuiltinTests.cpp
-   vktShaderBuiltinTests.hpp
-   vktShaderCommonFunctionTests.cpp
-   vktShaderCommonFunctionTests.hpp
-   vktShaderIntegerFunctionTests.cpp
-   vktShaderIntegerFunctionTests.hpp
-   vktShaderPackingFunctionTests.cpp
-   vktShaderPackingFunctionTests.hpp
-   vktShaderBuiltinPrecisionTests.cpp
-   vktShaderBuiltinPrecisionTests.hpp
-   vktOpaqueTypeIndexingTests.cpp
-   vktOpaqueTypeIndexingTests.hpp
+       vktShaderExecutor.cpp
+       vktShaderExecutor.hpp
+       vktShaderBuiltinTests.cpp
+       vktShaderBuiltinTests.hpp
+       vktShaderCommonFunctionTests.cpp
+       vktShaderCommonFunctionTests.hpp
+       vktShaderIntegerFunctionTests.cpp
+       vktShaderIntegerFunctionTests.hpp
+       vktShaderPackingFunctionTests.cpp
+       vktShaderPackingFunctionTests.hpp
+       vktShaderBuiltinPrecisionTests.cpp
+       vktShaderBuiltinPrecisionTests.hpp
+       vktOpaqueTypeIndexingTests.cpp
+       vktOpaqueTypeIndexingTests.hpp
 )
 
 set(DEQP_VK_SHADEREXECUTOR_LIBS
-   deqp-vk-common
-   tcutil
-   vkutil
+       tcutil
+       vkutil
 )
 
 add_library(deqp-vk-shaderexecutor STATIC ${DEQP_VK_SHADEREXECUTOR_SRCS})
index e15521a..28eaa05 100644 (file)
@@ -32,7 +32,6 @@ set(DEQP_VK_SHADERRENDER_SRCS
        )
 
 set(DEQP_VK_SHADERRENDER_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 22eff93..1dbd6d6 100644 (file)
@@ -14,7 +14,6 @@ set(DEQP_VK_SPIRV_ASSEMBLY_SRCS
        )
 
 set(DEQP_VK_SPIRV_ASSEMBLY_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index 357590f..2c8e966 100644 (file)
@@ -10,7 +10,6 @@ set(DEQP_VK_SSBO_SRCS
 )
 
 set(DEQP_VK_SSBO_LIBS
-       deqp-vk-common
        tcutil
        vkutil
 )
index f5f119b..ca990cc 100644 (file)
@@ -25,7 +25,6 @@ set(DEQP_VK_SYNCHRONIZATION_SRCS
        )
 
 set(DEQP_VK_SYNCHRONIZATION_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index b204339..341ab99 100644 (file)
@@ -34,7 +34,6 @@ set(DEQP_VK_TESSELLATION_SRCS
        )
 
 set(DEQP_VK_TESSELLATION_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )
index b3f991c..9eec948 100644 (file)
@@ -25,7 +25,6 @@ set(DEQP_VK_TEXTURE_SRCS
        )
 
 set(DEQP_VK_TEXTURE_LIBS
-       deqp-vk-common
        deqp-vk-shaderexecutor
        tcutil
        vkutil
index 7976f6d..38322db 100644 (file)
@@ -12,7 +12,6 @@ set(DEQP_VK_UBO_SRCS
 )
 
 set(DEQP_VK_UBO_LIBS
-       deqp-vk-common
        tcutil
        vkutil
 )
index 3a271dc..0836b41 100644 (file)
@@ -12,7 +12,6 @@ set(DEQP_VK_WSI_SRCS
        )
 
 set(DEQP_VK_WSI_LIBS
-       deqp-vk-common
        tcutil
        vkutil
        )