diff options
author | David Edmundson <kde@davidedmundson.co.uk> | 2020-06-08 15:29:40 +0100 |
---|---|---|
committer | David Edmundson <davidedmundson@kde.org> | 2020-07-10 12:12:58 +0000 |
commit | 0ae520199d0e0523f4f0aa847b7567d72ae9553d (patch) | |
tree | 4dc13a76d6dfb691b629962b21abbc2fa5ddfce6 /tests/ECMConfiguredInstallTest/check_tree.cmake.in | |
parent | 4ad3d1615f90adc66f053183f82eec572b35d011 (diff) | |
download | extra-cmake-modules-0ae520199d0e0523f4f0aa847b7567d72ae9553d.tar.gz extra-cmake-modules-0ae520199d0e0523f4f0aa847b7567d72ae9553d.tar.bz2 |
Introduce function ecm_install_configured_file
Summary:
This, as the name suggests, configures a file and installs it.
It's not very complicated but it's a repeated pattern in plasma that
gets quite messy dealing with temporary files.
Test Plan: Used in a project
Reviewers: #build_system
Subscribers: apol, kossebau, pino, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D28355
Diffstat (limited to 'tests/ECMConfiguredInstallTest/check_tree.cmake.in')
-rw-r--r-- | tests/ECMConfiguredInstallTest/check_tree.cmake.in | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ECMConfiguredInstallTest/check_tree.cmake.in b/tests/ECMConfiguredInstallTest/check_tree.cmake.in new file mode 100644 index 00000000..c5fe51c9 --- /dev/null +++ b/tests/ECMConfiguredInstallTest/check_tree.cmake.in @@ -0,0 +1,20 @@ +set(EXPECTED "@CMAKE_CURRENT_SOURCE_DIR@/expected") +set(ACTUAL "@CMAKE_INSTALL_PREFIX@") + +# Compares files in two directories, emits a fatal error if the top level files are different +# Takes a directory of expected files, and a directory of output files +function(compare_dirs expected output ) + file(GLOB files "${expected}/*") + foreach(file ${files}) + get_filename_component(name ${file} NAME) + + execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files ${file} "${output}/${name}" + RESULT_VARIABLE test_result + ) + If (NOT test_result EQUAL 0) + message(FATAL_ERROR "Test failed: ${file} doesn't match ${output}/${name}!") + endif() + endforeach() +endfunction() + +compare_dirs(${EXPECTED} ${ACTUAL}/test ) |