aboutsummaryrefslogtreecommitdiff
path: root/tests/ECMGeneratePkgConfigFile/run_test.cmake.config
blob: c0dec2276516ab0734c12d3e3d798d9a1c16ebd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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)
    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)