blob: 11f5d8ef54d592a85de0de22613b50faba28da32 (
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
if (NOT QT_CONFIGURE_RUNNING)
include(QtAppManVersionDefines)
endif()
# all features are prefixed with "am" to prevent clashes with features in
# other Qt modules
#### Inputs
set(INPUT_libyaml "undefined" CACHE STRING "")
set_property(CACHE INPUT_libyaml PROPERTY STRINGS undefined qt system)
set(INPUT_libarchive "undefined" CACHE STRING "")
set_property(CACHE INPUT_libarchive PROPERTY STRINGS undefined qt system)
#### Libraries
if(TARGET WrapLibYaml::WrapLibYaml)
qt_internal_disable_find_package_global_promotion(WrapLibYaml::WrapLibYaml)
endif()
qt_find_package(WrapLibYaml PROVIDED_TARGETS WrapLibYaml::WrapLibYaml MODULE_NAME appman_common QMAKE_LIB yaml)
qt_find_package(WrapLibArchive PROVIDED_TARGETS WrapLibArchive::WrapLibArchive MODULE_NAME appman_package QMAKE_LIB archive)
#### Tests
#### Features
qt_feature("am-system-libyaml" PRIVATE
LABEL "Using system libyaml"
CONDITION WrapLibYaml_FOUND
ENABLE INPUT_libyaml STREQUAL 'system'
DISABLE INPUT_libyaml STREQUAL 'qt'
)
qt_feature("am-system-libarchive" PRIVATE
LABEL "Using system libarchive"
CONDITION WrapLibArchive_FOUND
ENABLE INPUT_libarchive STREQUAL 'system'
DISABLE INPUT_libarchive STREQUAL 'qt'
)
qt_feature("am-multi-process" PUBLIC
LABEL "Multi-process mode"
CONDITION TARGET Qt::DBus AND TARGET Qt::WaylandCompositor AND LINUX AND QT_FEATURE_shared
ENABLE INPUT_force_mode STREQUAL 'multi'
DISABLE INPUT_force_mode STREQUAL 'single'
)
qt_feature("am-installer" PUBLIC
LABEL "Enable the installer component"
CONDITION QT_FEATURE_ssl AND NOT IOS
ENABLE INPUT_installer STREQUAL 'yes'
DISABLE INPUT_installer STREQUAL 'no'
)
qt_feature("am-external-dbus-interfaces" PRIVATE
LABEL "Enable external DBus interfaces"
CONDITION TARGET Qt::DBus
ENABLE INPUT_external_dbus_interfaces STREQUAL 'yes'
DISABLE INPUT_external_dbus_interfaces STREQUAL 'no'
)
qt_feature("am-package-server" PRIVATE
LABEL "Build the package-server"
CONDITION TARGET Qt::HttpServer AND QT_FEATURE_am_installer
ENABLE INPUT_package_server STREQUAL 'yes'
DISABLE INPUT_package_server STREQUAL 'no'
)
qt_feature("am-tools-only" PRIVATE
LABEL "Tools only build"
AUTODETECT OFF
ENABLE INPUT_tools_only STREQUAL 'yes'
DISABLE INPUT_tools_only STREQUAL 'no'
)
qt_feature("am-dltlogging" PRIVATE
LABEL "Enable logging via DLT"
CONDITION TARGET Qt::DltLogging
ENABLE INPUT_dltlogging STREQUAL 'yes'
DISABLE INPUT_dltlogging STREQUAL 'no'
)
qt_feature("am-libdbus" PRIVATE
LABEL "Compile libdbus for appman-controller"
CONDITION WIN32 OR MACOS
EMIT_IF WIN32 OR MACOS
ENABLE INPUT_libdbus STREQUAL 'yes'
DISABLE INPUT_libdbus STREQUAL 'no'
)
qt_feature("am-libbacktrace" PRIVATE
LABEL "Enable support for libbacktrace"
CONDITION (LINUX OR MACOS) AND (CMAKE_BUILD_TYPE STREQUAL "Debug")
EMIT_IF (LINUX OR MACOS)
ENABLE INPUT_libbacktrace STREQUAL 'yes'
DISABLE INPUT_libbacktrace STREQUAL 'no'
)
qt_feature("am-stackwalker" PRIVATE
LABEL "Enable support for StackWalker"
CONDITION WIN32 AND MSVC AND (CMAKE_BUILD_TYPE STREQUAL "Debug")
EMIT_IF WIN32
ENABLE INPUT_stackwalker STREQUAL 'yes'
DISABLE INPUT_stackwalker STREQUAL 'no'
)
qt_feature("am-has-hardware-id" PRIVATE
LABEL "Hardware-id for the installer"
CONDITION ON
DISABLE INPUT_hardware_id STREQUAL ''
)
qt_feature_definition("am-has-hardware-id" "QT_AM_HARDWARE_ID" VALUE "\"${INPUT_hardware_id}\"")
qt_feature("am-widgets-support" PUBLIC
LABEL "Enable support for Qt widgets"
CONDITION TARGET Qt::Widgets
ENABLE INPUT_widgets_support STREQUAL 'yes'
DISABLE INPUT_widgets_support STREQUAL 'no'
)
qt_configure_add_summary_section(NAME "Qt Application Manager")
qt_configure_add_summary_entry(ARGS "am-system-libyaml")
qt_configure_add_summary_entry(ARGS "am-system-libarchive")
qt_configure_add_summary_entry(ARGS "am-multi-process")
qt_configure_add_summary_entry(ARGS "am-installer")
if (QT_FEATURE_am_has_hardware_id)
qt_configure_add_summary_entry(
TYPE "message"
ARGS "${QT_FEATURE_LABEL_am_has_hardware_id}"
MESSAGE "yes (${INPUT_hardware_id})"
)
else()
qt_configure_add_summary_entry(ARGS "am-has-hardware-id")
endif()
qt_configure_add_summary_entry(ARGS "am-external-dbus-interfaces")
qt_configure_add_summary_entry(ARGS "am-widgets-support")
qt_configure_add_summary_entry(ARGS "am-tools-only")
qt_configure_add_summary_entry(ARGS "am-package-server")
qt_configure_add_summary_entry(ARGS "am-dltlogging")
qt_configure_add_summary_entry(ARGS "am-libdbus")
qt_configure_add_summary_entry(ARGS "am-libbacktrace")
qt_configure_add_summary_entry(ARGS "am-stackwalker")
qt_configure_end_summary_section() # end of "Qt ApplicationManger" section
|