Files
RedBear-OS/local/recipes/kde/kf6-extra-cmake-modules/source/tests/ECMGeneratePkgConfigFile/run_test.cmake.config
T
2026-04-14 10:51:06 +01:00

162 lines
6.5 KiB
Plaintext

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)
function (compare_files)
set(options)
set(oneValueArgs GENERATED ORIGINALS)
set(multiValueArgs)
cmake_parse_arguments(CF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
list(LENGTH CF_GENERATED count)
math(EXPR last "${count}-1")
foreach(i RANGE ${last})
list(GET CF_GENERATED ${i} 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 ${i} 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
DESCRIPTION "KF5CoreAddons test"
DEPS Qt5Core
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
message(STATUS "Test2: no description parameter, metainfo.yaml with description found")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons2.pc")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_with_description.yaml
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/metainfo_with_description.yaml ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons2
DEPS Qt5Core
INCLUDE_INSTALL_DIR /usr/KCoreAddons
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
message(STATUS "Test3: no description parameter, metainfo.yaml with empty description found")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons3.pc")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_with_empty_description.yaml
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/metainfo_with_empty_description.yaml ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons3
DEPS Qt5Core
INCLUDE_INSTALL_DIR /usr/KCoreAddons
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
message(STATUS "Test4: no description parameter, metainfo.yaml without description")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons3.pc")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_without_description.yaml
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/metainfo_without_description.yaml ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons3
DEPS Qt5Core
INCLUDE_INSTALL_DIR /usr/KCoreAddons
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
message(STATUS "Test5: with public and private dependencies")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons4.pc")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_without_description.yaml
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/metainfo_without_description.yaml ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons4
DEPS Public1 PRIVATE Private1 Private2 PUBLIC Public2
INCLUDE_INSTALL_DIR /usr/KCoreAddons
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/metainfo.yaml)
message(STATUS "Test 6: with an URL parameter")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddons5.pc")
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons5
DESCRIPTION "KF5CoreAddons test"
URL "https://www.example.org/"
DEPS Qt5Core
INCLUDE_INSTALL_DIR /usr/KCoreAddons
FILENAME_VAR OutputFile)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})
message(STATUS "Test7: Custom defines")
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/KF6Attica.pc")
set(prefix "/usr")
ecm_setup_version(6.7.0 VARIABLE_PREFIX ATTICA
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/attica_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6AtticaConfigVersion.cmake"
SOVERSION 6)
ecm_generate_pkgconfig_file(BASE_NAME KF6Attica
DESCRIPTION "Qt library to access Open Collaboration Services"
LIB_NAME KF6Attica
INCLUDE_INSTALL_DIR /usr/include/Attica
DEFINES -I\${prefix}/include/foo -I\${prefix}/include/bar
DEPS Qt6Core Qt6Network
FILENAME_VAR OutputFile
)
compare_files(GENERATED ${OutputFile}
ORIGINALS ${origfiles})
file(REMOVE ${OutputFile})