cf12defd28
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
162 lines
6.5 KiB
Plaintext
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})
|