From 5cba188a483ad2a8260adc38ed9c333b43dea921 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Fri, 28 Aug 2020 23:14:42 +0200 Subject: [PATCH] split lib and tests cmake --- CMakeLists.txt | 68 ++------------------------------------------ tests/CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 65 deletions(-) create mode 100644 tests/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c36405..2096d68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,16 +41,6 @@ ELSE() ENDIF() ENDIF() -OPTION(VKVG_TEST_DIRECT_DRAW "(Experimental)Draw directly on backend surface, if off surface is blitted." OFF) -IF (VKVG_TEST_DIRECT_DRAW) - ADD_DEFINITIONS (-DVKVG_TEST_DIRECT_DRAW) -ENDIF () - -OPTION(VKVG_TEST_OFFSCREEN "Draw offscreen without presenting result." OFF) -IF (VKVG_TEST_OFFSCREEN) - ADD_DEFINITIONS (-DVKVG_TEST_OFFSCREEN) -ENDIF () - OPTION(VKVG_PREMULT_ALPHA "use premultiplied alpha for internal rendering" ON) IF (VKVG_PREMULT_ALPHA) ADD_DEFINITIONS (-DVKVG_PREMULT_ALPHA) @@ -208,61 +198,9 @@ ADD_LIBRARY("${PROJECT_NAME}_shared" SHARED ${VKVG_SRC} ${SHADERS}) SET_PROPERTY(TARGET "${PROJECT_NAME}_static" PROPERTY POSITION_INDEPENDENT_CODE ON) setup_lib ("${PROJECT_NAME}_shared") -FUNCTION (buildtest TEST_NAME) - ADD_EXECUTABLE(test_${TEST_NAME} "tests/${TEST_NAME}.c" ) - TARGET_INCLUDE_DIRECTORIES(test_${TEST_NAME} PRIVATE - ${Vulkan_INCLUDE_DIRS} - ${GLFW3_INCLUDE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}/tests/common - ${CMAKE_CURRENT_SOURCE_DIR}/vkh/include - ${CMAKE_CURRENT_SOURCE_DIR}/vkh/src - ) - TARGET_LINK_LIBRARIES(test_${TEST_NAME} - tests_common - ) -ENDFUNCTION (buildtest) - -if (VKVG_BUILD_TESTS) - ADD_LIBRARY("tests_common" STATIC tests/common/vkengine.c tests/common/test.c) - TARGET_INCLUDE_DIRECTORIES(tests_common PRIVATE - ${Vulkan_INCLUDE_DIRS} - ${GLFW3_INCLUDE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${CMAKE_CURRENT_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}/tests/common - ${CMAKE_CURRENT_SOURCE_DIR}/vkh/include - ${CMAKE_CURRENT_SOURCE_DIR}/vkh/src - ) - TARGET_LINK_LIBRARIES(tests_common - ${Vulkan_LIBRARIES} - ${GLFW3_LIBRARY} - vkvg_static - ) - - file(GLOB_RECURSE DATAS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/tests" "tests/data/*") - FOREACH(DATA_FILE ${DATAS}) - GET_FILENAME_COMPONENT(copy-dest-dir ${CMAKE_CURRENT_BINARY_DIR}/${DATA_FILE} DIRECTORY) - SET(copy-output ${CMAKE_CURRENT_BINARY_DIR}/${DATA_FILE}) - ADD_CUSTOM_COMMAND( - OUTPUT ${copy-output} - COMMAND ${CMAKE_COMMAND} -E make_directory ${copy-dest-dir} - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/tests/${DATA_FILE}" "${copy-output}" - COMMENT "Copying ${DATA_FILE} to ${copy-output}" - #DEPENDS ${DATA_FILE} - VERBATIM - ) - ENDFOREACH() - add_custom_target("${PROJECT_NAME}_DataCopy" ALL DEPENDS ${DATAS}) - - #build test apps - file(GLOB TESTS "tests/*.c") - FOREACH(TEST ${TESTS}) - GET_FILENAME_COMPONENT(testname ${TEST} NAME_WE) - buildtest(${testname}) - ENDFOREACH() -endif () +IF (VKVG_BUILD_TESTS) + add_subdirectory(tests) +ENDIF (VKVG_BUILD_TESTS) MESSAGE(STATUS "HarfBuzz_INCLUDE_DIRS = ${HarfBuzz_INCLUDE_DIRS}") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..1e50ece --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,68 @@ +OPTION(VKVG_TEST_DIRECT_DRAW "(Experimental)Draw directly on backend surface, if off surface is blitted." OFF) +IF (VKVG_TEST_DIRECT_DRAW) + ADD_DEFINITIONS (-DVKVG_TEST_DIRECT_DRAW) +ENDIF () + +OPTION(VKVG_TEST_OFFSCREEN "Draw offscreen without presenting result." OFF) +IF (VKVG_TEST_OFFSCREEN) + ADD_DEFINITIONS (-DVKVG_TEST_OFFSCREEN) +ENDIF () + +FUNCTION (buildtest TEST_NAME) + ADD_EXECUTABLE(test_${TEST_NAME} "${TEST_NAME}.c" ) + TARGET_INCLUDE_DIRECTORIES(test_${TEST_NAME} PRIVATE + ${Vulkan_INCLUDE_DIRS} + ${GLFW3_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/../include + ${CMAKE_CURRENT_SOURCE_DIR}/../src + ${CMAKE_CURRENT_SOURCE_DIR}/common + ${CMAKE_CURRENT_SOURCE_DIR}/../vkh/include + ${CMAKE_CURRENT_SOURCE_DIR}/../vkh/src + ) + TARGET_LINK_LIBRARIES(test_${TEST_NAME} + tests_common + ) +ENDFUNCTION (buildtest) + +ADD_LIBRARY("tests_common" STATIC common/vkengine.c common/test.c) +TARGET_INCLUDE_DIRECTORIES(tests_common PRIVATE + ${Vulkan_INCLUDE_DIRS} + ${GLFW3_INCLUDE_DIR} + "${CMAKE_CURRENT_SOURCE_DIR}/../include" + "${CMAKE_CURRENT_SOURCE_DIR}/../src" + "${CMAKE_CURRENT_SOURCE_DIR}/../common" + "${CMAKE_CURRENT_SOURCE_DIR}/../vkh/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../vkh/src" + ) +TARGET_LINK_LIBRARIES(tests_common + ${Vulkan_LIBRARIES} + ${GLFW3_LIBRARY} + vkvg_static + ) + +file(GLOB_RECURSE DATAS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "data/*") +FOREACH(DATA_FILE ${DATAS}) + GET_FILENAME_COMPONENT(copy-dest-dir ${CMAKE_CURRENT_BINARY_DIR}/${DATA_FILE} DIRECTORY) + SET(copy-output ${CMAKE_CURRENT_BINARY_DIR}/${DATA_FILE}) + MESSAGE(STATUS "DATA_FILE\t\t= ${DATA_FILE}") + ADD_CUSTOM_COMMAND( + OUTPUT ${copy-output} + COMMAND ${CMAKE_COMMAND} -E make_directory ${copy-dest-dir} + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/${DATA_FILE}" "${copy-output}" + COMMENT "Copying ${DATA_FILE} to ${copy-output}" + DEPENDS ${DATA_FILE} + VERBATIM + ) +ENDFOREACH() +add_custom_target("${PROJECT_NAME}_DataCopy" ALL DEPENDS ${DATAS}) + +#build test apps +file(GLOB TESTS "*.c") +FOREACH(TEST ${TESTS}) +GET_FILENAME_COMPONENT(testname ${TEST} NAME_WE) +buildtest(${testname}) +ENDFOREACH() + + + + -- 2.47.3