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)
geometry
)
-set(DEQP_VK_COMMON_SRCS
+set(DEQP_VK_SRCS
vktTestCase.cpp
vktTestCase.hpp
vktTestCaseUtil.cpp
vktInfoTests.hpp
)
-set(DEQP_VK_COMMON_LIBS
+set(DEQP_VK_LIBS
tcutil
vkutil
glutil
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 ()
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 ()
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})