diff options
author | Friedrich W. H. Kossebau <kossebau@kde.org> | 2021-01-17 22:08:41 +0100 |
---|---|---|
committer | Friedrich W. H. Kossebau <kossebau@kde.org> | 2021-01-17 22:08:41 +0100 |
commit | 1704f7ab86253169615f19a9b10e2a832191b905 (patch) | |
tree | 6106ffc9e1a14ab4a9947134179d63a5e2bea0d1 /tests | |
parent | 50c0f8b05bd623af927d29dc01e5c7e7fb04dd34 (diff) | |
download | extra-cmake-modules-1704f7ab86253169615f19a9b10e2a832191b905.tar.gz extra-cmake-modules-1704f7ab86253169615f19a9b10e2a832191b905.tar.bz2 |
ECMQtDeclareLoggingCategory: create .categories files in build, not configure
Ensures that the files
* are re-created by build rule when accidentally deleted in the build dir
* are not getting new timestamps on every cmake run, even when content
has not changed
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt | 32 | ||||
-rw-r--r-- | tests/ECMQtDeclareLoggingCategoryTest/check.cmake.in | 35 |
3 files changed, 46 insertions, 30 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1901ca16..fff7d988 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -150,7 +150,14 @@ if (TARGET Qt5::qmake) KDEInstallDirsTest.relative_or_absolute dummy) endif () if (Qt5Core_FOUND) - add_test_macro(ECMQtDeclareLoggingCategoryTest testmain) + set(ECMQtDeclareLoggingCategoryTest_EXTRA_OPTIONS + --build-target all + --build-options + "-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/ECMQtDeclareLoggingCategoryTest/InstallDirectory" + ) + add_test_macro(ECMQtDeclareLoggingCategoryTest + ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/ECMQtDeclareLoggingCategoryTest/check.cmake" + ) endif() add_test_macro(FindModules dummy) diff --git a/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt b/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt index a921fd3b..3e8e859e 100644 --- a/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt +++ b/tests/ECMQtDeclareLoggingCategoryTest/CMakeLists.txt @@ -7,25 +7,6 @@ set(CMAKE_MODULE_PATH ${ECM_MODULE_DIR}) include(ECMQtDeclareLoggingCategory) include(CMakeParseArguments) -function (check_file) - set(options) - set(oneValueArgs GENERATED EXPECTED) - set(multiValueArgs) - cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT EXISTS "${ARGS_GENERATED}") - message(FATAL_ERROR "${ARGS_GENERATED} was not generated") - endif() - file(READ "${ARGS_GENERATED}" generated_contents) - if (NOT EXISTS "${ARGS_EXPECTED}") - message(FATAL_ERROR "Original ${ARGS_EXPECTED} was not found") - endif() - file(READ "${ARGS_EXPECTED}" original_contents) - if (NOT "${generated_contents}" STREQUAL "${original_contents}") - message(FATAL_ERROR "${generated_file} contains '${generated_contents}' instead of '${original_contents}'") - endif() -endfunction() - ecm_qt_declare_logging_category( sources HEADER "log1.h" @@ -78,15 +59,8 @@ target_link_libraries(testmain ecm_qt_install_logging_categories( EXPORT LOG FILE log.categories - DESTINATION "${CMAKE_BINARY_DIR}/dummyinstall" -) - -check_file( - GENERATED "${CMAKE_CURRENT_BINARY_DIR}/log.categories" - EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/log.categories" -) -check_file( - GENERATED "${CMAKE_CURRENT_BINARY_DIR}/log.renamecategories" - EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/log.renamecategories" + DESTINATION "${CMAKE_INSTALL_PREFIX}/share/qlogging-categories5" ) +# this will be run by CTest +configure_file(check.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/check.cmake" @ONLY) diff --git a/tests/ECMQtDeclareLoggingCategoryTest/check.cmake.in b/tests/ECMQtDeclareLoggingCategoryTest/check.cmake.in new file mode 100644 index 00000000..2b684148 --- /dev/null +++ b/tests/ECMQtDeclareLoggingCategoryTest/check.cmake.in @@ -0,0 +1,35 @@ +set(CMAKE_MODULE_PATH "@MODULES_DIR@/../kde-modules") +set(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") +set(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") + + +########################################################### + +function (check_file) + set(options) + set(oneValueArgs GENERATED EXPECTED) + set(multiValueArgs) + cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if (NOT EXISTS "${ARGS_GENERATED}") + message(FATAL_ERROR "${ARGS_GENERATED} was not generated") + endif() + file(READ "${ARGS_GENERATED}" generated_contents) + if (NOT EXISTS "${ARGS_EXPECTED}") + message(FATAL_ERROR "Original ${ARGS_EXPECTED} was not found") + endif() + file(READ "${ARGS_EXPECTED}" original_contents) + if (NOT "${generated_contents}" STREQUAL "${original_contents}") + message(FATAL_ERROR "${generated_file} contains '${generated_contents}' instead of '${original_contents}'") + endif() +endfunction() + + +check_file( + GENERATED "${CMAKE_CURRENT_BINARY_DIR}/log.categories" + EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/log.categories" +) +check_file( + GENERATED "${CMAKE_CURRENT_BINARY_DIR}/log.renamecategories" + EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/log.renamecategories" +) |