Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
set(MODULES_DIR "${ECM_SOURCE_DIR}/modules")
|
||||
configure_file(run_test.cmake.config "${CMAKE_CURRENT_BINARY_DIR}/run_test.cmake" @ONLY)
|
||||
|
||||
add_test(
|
||||
NAME ECMGeneratePkgConfigFile
|
||||
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/run_test.cmake")
|
||||
|
||||
add_subdirectory(test_imported_targets)
|
||||
add_subdirectory(test_no_interface_include_dirs)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include/KF5CoreAddons
|
||||
|
||||
Name: KF5CoreAddons
|
||||
Description: KF5CoreAddons test
|
||||
URL: https://www.kde.org/
|
||||
Version: 5.43
|
||||
Libs: -L${prefix}/lib -lKF5CoreAddons
|
||||
Cflags: -I${prefix}/include/KF5CoreAddons
|
||||
Requires: Qt5Core
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=/usr/KCoreAddons
|
||||
|
||||
Name: KF5CoreAddons2
|
||||
Description: Addons to QtCore
|
||||
URL: https://www.kde.org/
|
||||
Version: 5.43
|
||||
Libs: -L${prefix}/lib -lKF5CoreAddons2
|
||||
Cflags: -I/usr/KCoreAddons
|
||||
Requires: Qt5Core
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=/usr/KCoreAddons
|
||||
|
||||
Name: KF5CoreAddons3
|
||||
Description: KF5CoreAddons3 library.
|
||||
URL: https://www.kde.org/
|
||||
Version: 5.43
|
||||
Libs: -L${prefix}/lib -lKF5CoreAddons3
|
||||
Cflags: -I/usr/KCoreAddons
|
||||
Requires: Qt5Core
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=/usr/KCoreAddons
|
||||
|
||||
Name: KF5CoreAddons4
|
||||
Description: KF5CoreAddons4 library.
|
||||
URL: https://www.kde.org/
|
||||
Version: 5.43
|
||||
Libs: -L${prefix}/lib -lKF5CoreAddons4
|
||||
Cflags: -I/usr/KCoreAddons
|
||||
Requires: Public1 Public2
|
||||
Requires.private: Private1 Private2
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=/usr/KCoreAddons
|
||||
|
||||
Name: KF5CoreAddons5
|
||||
Description: KF5CoreAddons test
|
||||
URL: https://www.example.org/
|
||||
Version: 5.43
|
||||
Libs: -L${prefix}/lib -lKF5CoreAddons5
|
||||
Cflags: -I/usr/KCoreAddons
|
||||
Requires: Qt5Core
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=/usr/include/Attica
|
||||
|
||||
Name: KF6Attica
|
||||
Description: Qt library to access Open Collaboration Services
|
||||
URL: https://www.kde.org/
|
||||
Version: 6.7.0
|
||||
Libs: -L${prefix}/lib -lKF6Attica
|
||||
Cflags: -I/usr/include/Attica -I${prefix}/include/foo -I${prefix}/include/bar
|
||||
Requires: Qt6Core Qt6Network
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
maintainer: mpyne
|
||||
description: Addons to QtCore
|
||||
tier: 1
|
||||
type: functional
|
||||
platforms:
|
||||
- name: Linux
|
||||
- name: FreeBSD
|
||||
- name: Windows
|
||||
- name: MacOSX
|
||||
- name: Android
|
||||
portingAid: false
|
||||
deprecated: false
|
||||
release: true
|
||||
libraries:
|
||||
- qmake: KCoreAddons
|
||||
cmake: "KF5::CoreAddons"
|
||||
cmakename: KF5CoreAddons
|
||||
|
||||
public_lib: true
|
||||
group: Frameworks
|
||||
subgroup: Tier 1
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
maintainer: mpyne
|
||||
description:
|
||||
tier: 1
|
||||
type: functional
|
||||
platforms:
|
||||
- name: Linux
|
||||
- name: FreeBSD
|
||||
- name: Windows
|
||||
- name: MacOSX
|
||||
- name: Android
|
||||
portingAid: false
|
||||
deprecated: false
|
||||
release: true
|
||||
libraries:
|
||||
- qmake: KCoreAddons
|
||||
cmake: "KF5::CoreAddons"
|
||||
cmakename: KF5CoreAddons
|
||||
|
||||
public_lib: true
|
||||
group: Frameworks
|
||||
subgroup: Tier 1
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
maintainer: mpyne
|
||||
tier: 1
|
||||
type: functional
|
||||
platforms:
|
||||
- name: Linux
|
||||
- name: FreeBSD
|
||||
- name: Windows
|
||||
- name: MacOSX
|
||||
- name: Android
|
||||
portingAid: false
|
||||
deprecated: false
|
||||
release: true
|
||||
libraries:
|
||||
- qmake: KCoreAddons
|
||||
cmake: "KF5::CoreAddons"
|
||||
cmakename: KF5CoreAddons
|
||||
|
||||
public_lib: true
|
||||
group: Frameworks
|
||||
subgroup: Tier 1
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
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})
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(ECMGeneratePkgConfigFile_imported_vars VERSION 0.1)
|
||||
|
||||
set(ECM_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../modules")
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../modules;${CMAKE_CURRENT_SOURCE_DIR}/../../../kde-modules")
|
||||
|
||||
enable_language(CXX)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
# KDEInstallDirs can't be used
|
||||
set(EGPF_KDE_INSTALL_INCLUDEDIR_KF "include/KF6")
|
||||
|
||||
set(InputFile "${CMAKE_CURRENT_SOURCE_DIR}/EGPF_imported_include_dirs_control.pc")
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX "/usr")
|
||||
set(CMAKE_INSTALL_LIBDIR "lib")
|
||||
|
||||
ecm_setup_version(0.1 VARIABLE_PREFIX EGPF_lib
|
||||
SOVERSION 0)
|
||||
|
||||
add_library(EGPF_lib)
|
||||
target_sources(EGPF_lib PRIVATE main.cpp)
|
||||
set_target_properties(EGPF_lib PROPERTIES
|
||||
VERSION 0.1
|
||||
SOVERSION 0
|
||||
EXPORT_NAME "EGPF_lib"
|
||||
)
|
||||
|
||||
target_include_directories(EGPF_lib INTERFACE "$<INSTALL_INTERFACE:${EGPF_KDE_INSTALL_INCLUDEDIR_KF}/Attica;${EGPF_KDE_INSTALL_INCLUDEDIR_KF}/EGPF_lib;${EGPF_KDE_INSTALL_INCLUDEDIR_KF}/other_dir>"
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../:${CMAKE_CURRENT_BINARY_DIR}/..>"
|
||||
)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME EGPF_lib
|
||||
DESCRIPTION "Testing additional include dirs in Cflags"
|
||||
INCLUDE_INSTALL_DIR ${EGPF_KDE_INSTALL_INCLUDEDIR_KF}/Attica/
|
||||
FILENAME_VAR OutputFile
|
||||
)
|
||||
|
||||
add_test(
|
||||
NAME ECMGeneratePkgConfigFileTest.imported_include_dirs
|
||||
COMMAND ${CMAKE_COMMAND} -E compare_files --ignore-eol "${InputFile}" "${OutputFile}"
|
||||
)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include/KF6/Attica/
|
||||
|
||||
Name: EGPF_lib
|
||||
Description: Testing additional include dirs in Cflags
|
||||
URL: https://www.kde.org/
|
||||
Version: 0.1
|
||||
Libs: -L${prefix}/lib -lEGPF_lib
|
||||
Cflags: -I${prefix}/include/KF6/Attica -I${prefix}/include/KF6/EGPF_lib -I${prefix}/include/KF6/other_dir
|
||||
Requires:
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
int main(int, char**)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(ECMGeneratePkgConfigFile_no_interface_include_directories VERSION 0.1)
|
||||
|
||||
set(ECM_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../modules")
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../modules;${CMAKE_CURRENT_SOURCE_DIR}/../../../kde-modules")
|
||||
|
||||
enable_language(CXX)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
# KDEInstallDirs can't be used
|
||||
set(EGPF_KDE_INSTALL_INCLUDEDIR_KF "include/KF6")
|
||||
|
||||
set(InputFile "${CMAKE_CURRENT_SOURCE_DIR}/EGPF_no_interface_include_directories.pc")
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX "/usr")
|
||||
set(CMAKE_INSTALL_LIBDIR "lib")
|
||||
|
||||
ecm_setup_version(0.1 VARIABLE_PREFIX EGPF_lib_without_interface
|
||||
SOVERSION 0)
|
||||
|
||||
add_library(EGPF_lib_without_interface)
|
||||
target_sources(EGPF_lib_without_interface PRIVATE main.cpp)
|
||||
set_target_properties(EGPF_lib_without_interface PROPERTIES
|
||||
VERSION 0.1
|
||||
SOVERSION 0
|
||||
)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME EGPF_lib_without_interface
|
||||
DESCRIPTION "Testing generated pkgconfig file without interface_include_directories"
|
||||
INCLUDE_INSTALL_DIR ${EGPF_KDE_INSTALL_INCLUDEDIR_KF}
|
||||
FILENAME_VAR OutputFile
|
||||
)
|
||||
|
||||
add_test(
|
||||
NAME ECMGeneratePkgConfigFileTest.no_interface_include_directories
|
||||
COMMAND ${CMAKE_COMMAND} -E compare_files --ignore-eol "${InputFile}" "${OutputFile}"
|
||||
)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include/KF6
|
||||
|
||||
Name: EGPF_lib_without_interface
|
||||
Description: Testing generated pkgconfig file without interface_include_directories
|
||||
URL: https://www.kde.org/
|
||||
Version: 0.1
|
||||
Libs: -L${prefix}/lib -lEGPF_lib_without_interface
|
||||
Cflags: -I${prefix}/include/KF6
|
||||
Requires:
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
int main(int, char**)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user