blob: ccf2bbd720c8e9ac8571cf009b2c67c2472213b1 (
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
127
|
# hmm, any better ideas ?
set(KF5_VERSION_STRING "5.0.0")
# we probably only want to search known components, so people don't start
# misusing this file for searching their own libraries.
set(knownComponentsTier1 itemmodels
kcoreaddons
kdbusaddons
kplotting
kwindowsystem
solid
threadweaver)
set(knownComponentsTier2 kauth )
set(knownComponentsTier3 )
set(allKnownComponents Compiler CMake InstallDirs ${knownComponentsTier1} ${knownComponentsTier2} ${knownComponentsTier3} )
set(cmakeCompRequested FALSE)
set(compilerCompRequested FALSE)
set(installDirsCompRequested FALSE)
unset(unknownComponents)
set(firstComponent )
set(followingComponents )
# iterate through the list of requested components, and check that we know them all.
# If not, fail.
foreach(comp ${KF5_FIND_COMPONENTS})
list(FIND allKnownComponents ${comp} index )
if("${index}" STREQUAL "-1")
list(APPEND unknownComponents "${comp}")
else()
if("${comp}" STREQUAL "CMake")
set(cmakeCompRequested TRUE)
elseif("${comp}" STREQUAL "Compiler")
set(compilerCompRequested TRUE)
elseif("${comp}" STREQUAL "InstallDirs")
set(installDirsCompRequested TRUE)
else()
if(NOT firstComponent)
set(firstComponent "${comp}")
else()
list(APPEND followingComponents "${comp}")
endif()
endif()
endif()
endforeach()
if(DEFINED unknownComponents)
set(msgType STATUS)
if(KF5_FIND_REQUIRED)
set(msgType FATAL_ERROR)
endif()
message(${msgType} "KF5: requested unknown components ${unknownComponents}")
return()
endif()
if(installDirsCompRequested)
include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDEInstallDirs.cmake)
set(KF5_InstallDirs_FOUND TRUE)
endif()
if(cmakeCompRequested)
include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDECMakeSettings.cmake)
set(KF5_CMake_FOUND TRUE)
endif()
if(compilerCompRequested)
include(${CMAKE_CURRENT_LIST_DIR}/../kde-modules/KDECompilerSettings.cmake)
set(KF5_Compiler_FOUND TRUE)
endif()
if(firstComponent)
file(TO_CMAKE_PATH "$ENV{KDEDIRS}" _KDEDIRS)
set(_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} )
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${_KDEDIRS} )
find_package(${firstComponent} ${KF5_FIND_VERSION} CONFIG )
set(KF5_File "${${firstComponent}_CONFIG}}")
if(${firstComponent}_CONFIG)
set(KF5_${firstComponent}_FOUND TRUE)
if(NOT DEFINED ${firstComponent}_INSTALL_PREFIX)
message(STATUS "${firstComponent} does not set ${firstComponent}_INSTALL_PREFIX !")
endif()
endif()
# search for the other components first in the same directory where the first one
# has been found, and additionally in KDEDIRS. This is to make sure we don't
# get a random mix of installed KDE libraries.
set(CMAKE_PREFIX_PATH ${${firstComponent}_INSTALL_PREFIX} ${_KDEDIRS})
foreach(comp ${followingComponents})
find_package(${comp} ${KF5_FIND_VERSION} CONFIG
NO_CMAKE_ENVIRONMENT_PATH
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_BUILDS_PATH
NO_CMAKE_PACKAGE_REGISTRY
NO_CMAKE_SYSTEM_PATH
NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
)
if(${comp}_CONFIG)
set(KF5_${comp}_FOUND TRUE)
endif()
message(STATUS "${comp}: ${${comp}_CONFIG}")
endforeach()
set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH} )
else()
set(KF5_File "${CMAKE_CURRENT_LIST_FILE}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(KF5
REQUIRED_VARS KF5_File
VERSION_VAR KF5_VERSION_STRING
HANDLE_COMPONENTS
)
|