diff options
author | Aleix Pol <aleixpol@kde.org> | 2014-09-10 10:03:25 +0200 |
---|---|---|
committer | Aleix Pol <aleixpol@kde.org> | 2014-09-10 10:03:25 +0200 |
commit | f5f4d572ba0904a5c5c52a0de710112b953767ce (patch) | |
tree | 4a8aeaa9be5be80107db3cb8cfa33eee043d2468 /tests | |
parent | a9e748d1b56470769450483baa5c16079ed99871 (diff) | |
download | extra-cmake-modules-f5f4d572ba0904a5c5c52a0de710112b953767ce.tar.gz extra-cmake-modules-f5f4d572ba0904a5c5c52a0de710112b953767ce.tar.bz2 |
Introduce ECMGeneratePkgConfigFile
A new module has been introduced to generate pkgconfig files from
cmake projects.
REVIEW: 119798
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/ECMGeneratePkgConfigFile/CMakeLists.txt | 6 | ||||
-rw-r--r-- | tests/ECMGeneratePkgConfigFile/KF5CoreAddons.pc | 6 | ||||
-rw-r--r-- | tests/ECMGeneratePkgConfigFile/run_test.cmake.config | 54 |
4 files changed, 67 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 65de038e..69da6e6e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,6 +6,7 @@ project(ECMTests C) add_subdirectory(ECMGenerateHeadersTest) add_subdirectory(ECMSetupVersionTest) +add_subdirectory(ECMGeneratePkgConfigFile) # a macro for tests that have a simple format where the name matches the # directory and project diff --git a/tests/ECMGeneratePkgConfigFile/CMakeLists.txt b/tests/ECMGeneratePkgConfigFile/CMakeLists.txt new file mode 100644 index 00000000..9f407cb0 --- /dev/null +++ b/tests/ECMGeneratePkgConfigFile/CMakeLists.txt @@ -0,0 +1,6 @@ +set(MODULES_DIR "${extra-cmake-modules_SOURCE_DIR}/modules") +configure_file(run_test.cmake.config "${CMAKE_CURRENT_BINARY_DIR}/run_test.cmake" @ONLY) + +add_test( + NAME ECMGenerateHeaders + COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/run_test.cmake") diff --git a/tests/ECMGeneratePkgConfigFile/KF5CoreAddons.pc b/tests/ECMGeneratePkgConfigFile/KF5CoreAddons.pc new file mode 100644 index 00000000..68e0004d --- /dev/null +++ b/tests/ECMGeneratePkgConfigFile/KF5CoreAddons.pc @@ -0,0 +1,6 @@ + +Name: KF5CoreAddons +Version: 5.43 +Libs: -L/usr/lib -lKF5CoreAddons +Cflags: -I/usr/KCoreAddons +Requires: Qt5Core diff --git a/tests/ECMGeneratePkgConfigFile/run_test.cmake.config b/tests/ECMGeneratePkgConfigFile/run_test.cmake.config new file mode 100644 index 00000000..dad4369b --- /dev/null +++ b/tests/ECMGeneratePkgConfigFile/run_test.cmake.config @@ -0,0 +1,54 @@ +set(CMAKE_MODULE_PATH "@MODULES_DIR@") +set(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") +set(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") + +set(CMAKE_INSTALL_PREFIX "/usr") + +include(ECMGeneratePkgConfigFile) +include(ECMSetupVersion) +include(CMakeParseArguments) + + +function (compare_files) + set(options) + set(oneValueArgs GENERATED ORIGINALS) + set(multiValueArgs) + cmake_parse_arguments(CF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + list(LENGTH CF_GENERATED count) + foreach(i RANGE ${count}) + list(GET CF_GENERATED 0 generated_file) + if (NOT EXISTS "${generated_file}") + message(FATAL_ERROR "${generated_file} was not generated") + endif() + file(READ "${generated_file}" file_contents) + string(STRIP "${file_contents}" file_contents) + + list(GET CF_ORIGINALS 0 original_file) + if (NOT EXISTS "${original_file}") + message(FATAL_ERROR "Original ${original_file} was not found") + endif() + file(READ "${original_file}" original_contents) + string(STRIP "${original_contents}" original_contents) + + if(NOT original_contents STREQUAL file_contents) + message(FATAL_ERROR "Different files: ${original_file} ${generated_file}") + endif() + endforeach() +endfunction() + +########################################################### + + +ecm_setup_version(5.43 VARIABLE_PREFIX KCOREADDONS + VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake" + SOVERSION 5) + +message(STATUS "Test 1: no optional arguments") +set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons.pc") + +ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons DEPS Qt5Core INCLUDE_INSTALL_DIR /usr/KCoreAddons FILENAME_VAR OutputFile) + +compare_files(GENERATED ${OutputFile} + ORIGINALS ${origfiles}) +file(REMOVE ${OutputFile}) |