···
1
+
diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
2
+
index 5208379f9a..92fe29a0ac 100644
3
+
--- a/mkspecs/common/mac.conf
4
+
+++ b/mkspecs/common/mac.conf
5
+
@@ -23,7 +23,7 @@ QMAKE_INCDIR_OPENGL = \
7
+
QMAKE_FIX_RPATH = install_name_tool -id
9
+
-QMAKE_LFLAGS_RPATH = -Wl,-rpath,
10
+
+QMAKE_LFLAGS_RPATH =
11
+
QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip
13
+
QMAKE_LFLAGS_REL_RPATH =
14
+
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
15
+
index bb5083c925..da8e2cb386 100644
16
+
--- a/mkspecs/features/create_cmake.prf
17
+
+++ b/mkspecs/features/create_cmake.prf
18
+
@@ -21,7 +21,7 @@ load(cmake_functions)
19
+
# at cmake time whether package has been found via a symlink, and correct
20
+
# that to an absolute path. This is only done for installations to
21
+
# the /usr or / prefix.
22
+
-CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
23
+
+CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$NIX_OUTPUT_OUT/lib/)
24
+
contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
26
+
CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake
27
+
@@ -47,47 +47,22 @@ split_incpath {
28
+
$$cmake_extra_source_includes.output
31
+
-CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
32
+
-contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
33
+
- CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
34
+
- CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
36
+
+CMAKE_INCLUDE_DIR = $$NIX_OUTPUT_DEV/include/
37
+
+CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
39
+
!exists($$first(QT.$${MODULE}_private.includes)): CMAKE_NO_PRIVATE_INCLUDES = true
41
+
-CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
42
+
-contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
43
+
- CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
44
+
- CMAKE_LIB_DIR_IS_ABSOLUTE = True
46
+
- CMAKE_RELATIVE_INSTALL_LIBS_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
47
+
- # We need to go up another two levels because the CMake files are
48
+
- # installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
49
+
- CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}../../"
51
+
+CMAKE_LIB_DIR = $$NIX_OUTPUT_DEV/lib/
52
+
+CMAKE_LIB_DIR_IS_ABSOLUTE = True
54
+
-CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
55
+
-contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
56
+
- CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
57
+
- CMAKE_BIN_DIR_IS_ABSOLUTE = True
59
+
+CMAKE_BIN_DIR = $$NIX_OUTPUT_BIN/bin/
60
+
+CMAKE_BIN_DIR_IS_ABSOLUTE = True
62
+
-CMAKE_PLUGIN_DIR = $$cmakeRelativePath($$[QT_INSTALL_PLUGINS], $$[QT_INSTALL_PREFIX])
63
+
-contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") {
64
+
- CMAKE_PLUGIN_DIR = $$[QT_INSTALL_PLUGINS]/
65
+
- CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
67
+
+CMAKE_PLUGIN_DIR = $$NIX_OUTPUT_PLUGIN/
68
+
+CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
70
+
-win32:!static:!staticlib {
71
+
- CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX])
72
+
- contains(CMAKE_DLL_DIR, "^\\.\\./.*") {
73
+
- CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/
74
+
- CMAKE_DLL_DIR_IS_ABSOLUTE = True
77
+
- CMAKE_DLL_DIR = $$CMAKE_LIB_DIR
78
+
- CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE
80
+
+CMAKE_DLL_DIR = $$NIX_OUTPUT_DEV/lib/
81
+
+CMAKE_DLL_DIR_IS_ABSOLUTE = True
83
+
static|staticlib:CMAKE_STATIC_TYPE = true
85
+
@@ -167,7 +142,7 @@ contains(CONFIG, plugin) {
88
+
cmake_qt5_plugin_file.files = $$cmake_target_file.output
89
+
- cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
90
+
+ cmake_qt5_plugin_file.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
91
+
INSTALLS += cmake_qt5_plugin_file
94
+
@@ -314,7 +289,7 @@ exists($$cmake_macros_file.input) {
95
+
cmake_qt5_module_files.files += $$cmake_macros_file.output
98
+
-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
99
+
+cmake_qt5_module_files.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
101
+
# We are generating cmake files. Most developers of Qt are not aware of cmake,
102
+
# so we require automatic tests to be available. The only module which should
103
+
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
104
+
index 55c74aad66..0bbc8718eb 100644
105
+
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
106
+
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
107
+
@@ -9,30 +9,6 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0)
111
+
-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
112
+
-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
113
+
-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
115
+
-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
116
+
-# Use original install prefix when loaded through a
117
+
-# cross-prefix symbolic link such as /lib -> /usr/lib.
118
+
-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
119
+
-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
120
+
-if(_realCurr STREQUAL _realOrig)
121
+
- get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
123
+
- get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
127
+
-unset(_IMPORT_PREFIX)
129
+
-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
130
+
-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
132
+
-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
135
+
!!IF !equals(TEMPLATE, aux)
136
+
# For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
137
+
set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.VERSION)")
138
+
@@ -58,11 +34,7 @@ endmacro()
139
+
macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION)
140
+
set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
142
+
-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
143
+
- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
145
+
set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
147
+
_qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
148
+
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
149
+
\"INTERFACE_LINK_LIBRARIES\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
150
+
@@ -75,11 +47,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
153
+
!!IF !isEmpty(CMAKE_WINDOWS_BUILD)
154
+
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
155
+
- set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
157
+
set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
159
+
_qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
160
+
if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
161
+
set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
162
+
@@ -95,24 +63,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
163
+
!!IF !no_module_headers
164
+
!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
165
+
set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
166
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\"
167
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\"
168
+
+ \"$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\"
169
+
+ \"$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\"
171
+
!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
172
+
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
173
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
174
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
177
+
- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
180
+
-!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
181
+
- set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
182
+
-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
183
+
- set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
184
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
185
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
186
+
+ \"$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
187
+
+ \"$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
190
+
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
191
+
@@ -128,7 +85,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
192
+
set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
196
+
!!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
197
+
include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
199
+
@@ -280,25 +236,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
200
+
!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
201
+
!!IF isEmpty(CMAKE_DEBUG_TYPE)
202
+
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
203
+
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
204
+
- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
205
+
-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
206
+
if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
207
+
-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
208
+
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
209
+
!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
211
+
-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
212
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
214
+
\"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
217
+
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
218
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
220
+
\"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
222
+
_populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
223
+
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
225
+
@@ -317,25 +261,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
226
+
!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
227
+
!!IF isEmpty(CMAKE_RELEASE_TYPE)
228
+
!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
229
+
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
230
+
- if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
231
+
-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
232
+
if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
233
+
-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
234
+
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" )
235
+
!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
237
+
-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
238
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
240
+
\"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
243
+
-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
244
+
- \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
246
+
\"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
248
+
_populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
249
+
!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
251
+
@@ -354,11 +286,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
252
+
macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION)
253
+
set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
255
+
-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
256
+
- set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
258
+
set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
260
+
_qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
261
+
set_target_properties(Qt5::${Plugin} PROPERTIES
262
+
\"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
263
+
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
264
+
index e645ba5803..a0e5c68b7e 100644
265
+
--- a/mkspecs/features/mac/default_post.prf
266
+
+++ b/mkspecs/features/mac/default_post.prf
267
+
@@ -24,166 +24,3 @@ qt {
272
+
-# Add the same default rpaths as Xcode does for new projects.
273
+
-# This is especially important for iOS/tvOS/watchOS where no other option is possible.
274
+
-!no_default_rpath {
275
+
- QMAKE_RPATHDIR += @executable_path/Frameworks
276
+
- equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
279
+
-# Don't pass -headerpad_max_install_names when using Bitcode.
280
+
-# In that case the linker emits a warning stating that the flag is ignored when
281
+
-# used with bitcode, for reasons that cannot be determined (rdar://problem/20748962).
282
+
-# Using this flag is also unnecessary in practice on UIKit platforms since they
283
+
-# are sandboxed, and only UIKit platforms support bitcode to begin with.
284
+
-!bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD
286
+
-app_extension_api_only {
287
+
- QMAKE_CFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
288
+
- QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
289
+
- QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
290
+
- QMAKE_LFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
294
+
- !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
295
+
- debug_information_format.name = DEBUG_INFORMATION_FORMAT
296
+
- debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT
297
+
- debug_information_format.build = debug
298
+
- QMAKE_MAC_XCODE_SETTINGS += debug_information_format
301
+
- QMAKE_XCODE_ARCHS =
303
+
- arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
304
+
- arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS
305
+
- QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
306
+
- QMAKE_MAC_XCODE_SETTINGS += arch_device
309
+
- arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
310
+
- arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS
311
+
- QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
312
+
- QMAKE_MAC_XCODE_SETTINGS += arch_simulator
315
+
- only_active_arch.name = ONLY_ACTIVE_ARCH
316
+
- only_active_arch.value = YES
317
+
- only_active_arch.build = debug
318
+
- QMAKE_MAC_XCODE_SETTINGS += only_active_arch
320
+
- device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS
321
+
- simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
322
+
- VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
324
+
- isEmpty(VALID_ARCHS): \
325
+
- error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
327
+
- single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
329
+
- ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
330
+
- ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
332
+
- QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
334
+
- arch_flags = $(EXPORT_ARCH_ARGS)
336
+
- QMAKE_CFLAGS += $$arch_flags
337
+
- QMAKE_CXXFLAGS += $$arch_flags
338
+
- QMAKE_LFLAGS += $$arch_flags
340
+
- QMAKE_PCH_ARCHS = $$VALID_ARCHS
342
+
- macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
343
+
- ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
344
+
- tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
345
+
- watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
347
+
- # If we're doing a simulator and device build, device and simulator
348
+
- # architectures use different paths and flags for the sysroot and
349
+
- # deployment target switch, so we must multiplex them across multiple
350
+
- # architectures using -Xarch. Otherwise we fall back to the simple path.
351
+
- # This is not strictly necessary, but results in cleaner command lines
352
+
- # and makes it easier for people to override EXPORT_VALID_ARCHS to limit
353
+
- # individual rules to a different set of architecture(s) from the overall
354
+
- # build (such as machtest in QtCore).
355
+
- simulator:device {
356
+
- QMAKE_XARCH_CFLAGS =
357
+
- QMAKE_XARCH_LFLAGS =
358
+
- QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
360
+
- for (arch, VALID_ARCHS) {
361
+
- contains(VALID_SIMULATOR_ARCHS, $$arch) {
362
+
- sdk = $$simulator.sdk
363
+
- version_identifier = $$simulator.deployment_identifier
365
+
- sdk = $$device.sdk
366
+
- version_identifier = $$device.deployment_identifier
369
+
- version_min_flags = \
370
+
- -Xarch_$${arch} \
371
+
- -m$${version_identifier}-version-min=$$deployment_target
372
+
- QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
373
+
- -Xarch_$${arch} \
374
+
- -isysroot$$xcodeSDKInfo(Path, $$sdk)
375
+
- QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
376
+
- -Xarch_$${arch} \
377
+
- -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
379
+
- QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
380
+
- QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
382
+
- QMAKE_EXTRA_VARIABLES += \
383
+
- QMAKE_XARCH_CFLAGS_$${arch} \
384
+
- QMAKE_XARCH_LFLAGS_$${arch}
387
+
- QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
388
+
- QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
389
+
- QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
392
+
- version_identifier = $$simulator.deployment_identifier
394
+
- version_identifier = $$device.deployment_identifier
395
+
- version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
396
+
- QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
397
+
- QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
398
+
- QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag
401
+
- # Enable precompiled headers for multiple architectures
402
+
- QMAKE_CFLAGS_USE_PRECOMPILE =
403
+
- for (arch, VALID_ARCHS) {
405
+
- use_flag = "-pch-use "
407
+
- use_flag = -include
409
+
- # Only use Xarch with multi-arch, as the option confuses ccache
410
+
- count(VALID_ARCHS, 1, greaterThan): \
411
+
- QMAKE_CFLAGS_USE_PRECOMPILE += \
414
+
- QMAKE_CFLAGS_USE_PRECOMPILE += \
415
+
- $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
418
+
- QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT}
419
+
- QMAKE_CFLAGS_USE_PRECOMPILE =
421
+
- QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
422
+
- QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
423
+
- QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
426
+
- QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT}
429
+
-cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
430
+
-!isEmpty(QMAKE_XCODE_VERSION): \
431
+
- cache(QMAKE_XCODE_VERSION, stash)
433
+
-QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
434
+
diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
435
+
index 44636f2288..61ed486a76 100644
436
+
--- a/mkspecs/features/mac/default_pre.prf
437
+
+++ b/mkspecs/features/mac/default_pre.prf
439
+
CONFIG = asset_catalogs rez $$CONFIG
442
+
-isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
443
+
- # Get path of Xcode's Developer directory
444
+
- QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
445
+
- isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
446
+
- error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
448
+
- # Make sure Xcode path is valid
449
+
- !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
450
+
- error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
453
+
-isEmpty(QMAKE_XCODEBUILD_PATH): \
454
+
- QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")
456
+
-!isEmpty(QMAKE_XCODEBUILD_PATH) {
457
+
- # Make sure Xcode is set up properly
458
+
- !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \
459
+
- error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.")
461
+
- isEmpty(QMAKE_XCODE_VERSION) {
462
+
- # Extract Xcode version using xcodebuild
463
+
- xcode_version = $$system("/usr/bin/xcrun xcodebuild -version")
464
+
- QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
465
+
- isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
466
+
- unset(xcode_version)
470
+
-isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
471
+
- QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
472
+
- exists($$QMAKE_XCODE_PREFERENCES_FILE): \
473
+
- QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")
475
+
- !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
476
+
- cache(QMAKE_TARGET_BUNDLE_PREFIX)
479
+
-QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon
481
+
-# Make the default debug info format for static debug builds
482
+
-# DWARF instead of DWARF with dSYM. This cuts down build times
483
+
-# for application debug builds significantly, as Xcode doesn't
484
+
-# have to pull out all the DWARF info from the Qt static libs
485
+
-# and put it into a dSYM file. We don't need that dSYM file in
486
+
-# the first place, since the information is available in the
487
+
-# object files inside the archives (static libraries).
488
+
-macx-xcode:qtConfig(static): \
489
+
- QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf
491
+
-# This variable is used by the xcode_dynamic_library_suffix
492
+
-# feature, which allows Xcode to choose the Qt libraries to link to
493
+
-# at build time, depending on the current Xcode SDK and configuration.
494
+
-QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
495
+
diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
496
+
index 3f6dc076ca..8b13789179 100644
497
+
--- a/mkspecs/features/mac/sdk.prf
498
+
+++ b/mkspecs/features/mac/sdk.prf
501
+
-isEmpty(QMAKE_MAC_SDK): \
502
+
- error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.")
504
+
-contains(QMAKE_MAC_SDK, .*/.*): \
505
+
- error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
507
+
-defineReplace(xcodeSDKInfo) {
509
+
- equals(info, "Path"): \
510
+
- info = --show-sdk-path
511
+
- equals(info, "PlatformPath"): \
512
+
- info = --show-sdk-platform-path
513
+
- equals(info, "SDKVersion"): \
514
+
- info = --show-sdk-version
517
+
- sdk = $$QMAKE_MAC_SDK
519
+
- isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) {
520
+
- QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$info 2>/dev/null")
521
+
- # --show-sdk-platform-path won't work for Command Line Tools; this is fine
522
+
- # only used by the XCTest backend to testlib
523
+
- isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(info, "--show-sdk-platform-path")): \
524
+
- error("Could not resolve SDK $$info for \'$$sdk\'")
525
+
- cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info})
528
+
- return($$eval(QMAKE_MAC_SDK.$${sdk}.$${info}))
531
+
-QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
532
+
-QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
533
+
-QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
536
+
-for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
537
+
-QMAKE_INCDIR_OPENGL = $$sysrootified
539
+
-QMAKESPEC_NAME = $$basename(QMAKESPEC)
541
+
-# Resolve SDK version of various tools
542
+
-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_ACTOOL)) {
543
+
- tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
544
+
- !isEmpty($$tool_variable) {
545
+
- $$tool = $$eval($$tool_variable)
549
+
- value = $$eval($$tool)
550
+
- isEmpty(value): next()
552
+
- sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
553
+
- isEmpty(sysrooted): next()
555
+
- $$tool = $$sysrooted $$member(value, 1, -1)
556
+
- cache($$tool_variable, set stash, $$tool)
558
+
diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
559
+
index 4db0040dc5..65d6da1f4d 100644
560
+
--- a/mkspecs/features/qml_module.prf
561
+
+++ b/mkspecs/features/qml_module.prf
562
+
@@ -23,13 +23,8 @@ for(qmlf, AUX_QML_FILES): fq_aux_qml_files += $$absolute_path($$qmlf, $$_PRO_FIL
564
+
load(qt_build_paths)
567
+
- DESTDIR = $$MODULE_BASE_OUTDIR/imports/$$TARGETPATH
568
+
- instbase = $$[QT_INSTALL_IMPORTS]
570
+
- DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
571
+
- instbase = $$[QT_INSTALL_QML]
573
+
+DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
574
+
+instbase = $$NIX_OUTPUT_QML
576
+
!qml1_target:static: CONFIG += builtin_resources
578
+
diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
579
+
index d49f4c49c1..097dcd7d39 100644
580
+
--- a/mkspecs/features/qml_plugin.prf
581
+
+++ b/mkspecs/features/qml_plugin.prf
582
+
@@ -48,13 +48,8 @@ exists($$QMLTYPEFILE): AUX_QML_FILES += $$QMLTYPEFILE
584
+
load(qt_build_paths)
587
+
- DESTDIR = $$MODULE_BASE_OUTDIR/imports/$$TARGETPATH
588
+
- instbase = $$[QT_INSTALL_IMPORTS]
590
+
- DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
591
+
- instbase = $$[QT_INSTALL_QML]
593
+
+DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
594
+
+instbase = $$NIX_OUTPUT_QML
596
+
target.path = $$instbase/$$TARGETPATH
598
+
diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf
599
+
index 883f8ca215..81db8eb2d4 100644
600
+
--- a/mkspecs/features/qt_app.prf
601
+
+++ b/mkspecs/features/qt_app.prf
602
+
@@ -33,7 +33,7 @@ host_build:force_bootstrap {
603
+
target.path = $$[QT_HOST_BINS]
605
+
!build_pass:qtConfig(debug_and_release): CONFIG += release
606
+
- target.path = $$[QT_INSTALL_BINS]
607
+
+ target.path = $$NIX_OUTPUT_BIN/bin
608
+
CONFIG += relative_qt_rpath # Qt's tools and apps should be relocatable
611
+
diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf
612
+
index 1848f00e90..2af93675c5 100644
613
+
--- a/mkspecs/features/qt_build_paths.prf
614
+
+++ b/mkspecs/features/qt_build_paths.prf
615
+
@@ -23,6 +23,6 @@ exists($$MODULE_BASE_INDIR/.git): \
616
+
!force_independent {
617
+
# If the module is not built independently, everything ends up in qtbase.
618
+
# This is the case in non-prefix builds, except for selected modules.
619
+
- MODULE_BASE_OUTDIR = $$[QT_HOST_PREFIX]
620
+
- MODULE_QMAKE_OUTDIR = $$[QT_HOST_PREFIX]
621
+
+ MODULE_BASE_OUTDIR = $$NIX_OUTPUT_OUT
622
+
+ MODULE_QMAKE_OUTDIR = $$NIX_OUTPUT_OUT
624
+
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
625
+
index f4ae5bde80..6d4c6d223f 100644
626
+
--- a/mkspecs/features/qt_common.prf
627
+
+++ b/mkspecs/features/qt_common.prf
628
+
@@ -32,8 +32,8 @@ contains(TEMPLATE, .*lib) {
629
+
qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
630
+
qt_libdir = $$[QT_HOST_LIBS]
632
+
- qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
633
+
- qt_libdir = $$[QT_INSTALL_LIBS]
634
+
+ qqt_libdir = \$\$\$\$NIX_OUTPUT_OUT/lib
635
+
+ qt_libdir = $$NIX_OUTPUT_OUT/lib
637
+
contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
638
+
lib_replace.match = "[^ ']*$$rplbase/lib"
639
+
diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
640
+
index 72dde61a40..f891a2baed 100644
641
+
--- a/mkspecs/features/qt_docs.prf
642
+
+++ b/mkspecs/features/qt_docs.prf
643
+
@@ -45,7 +45,7 @@ QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
645
+
QDOC += -outputdir $$shell_quote($$QMAKE_DOCS_OUTPUTDIR)
646
+
!build_online_docs: \
647
+
- QDOC += -installdir $$shell_quote($$[QT_INSTALL_DOCS])
648
+
+ QDOC += -installdir $$shell_quote($$NIX_OUTPUT_DOC)
651
+
!isEmpty(QTREPOS) {
652
+
@@ -64,8 +64,8 @@ DOC_INDEXES =
653
+
DOC_INDEXES += -indexdir $$shell_quote($$qrep/doc)
656
+
- PREP_DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
657
+
- DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
658
+
+ PREP_DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
659
+
+ DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
662
+
qtattributionsscanner.target = qtattributionsscanner
663
+
@@ -88,12 +88,12 @@ prepare_docs {
664
+
qch_docs.commands = $$QHELPGENERATOR $$shell_quote($$QMAKE_DOCS_OUTPUTDIR/$${QMAKE_DOCS_TARGET}.qhp) -o $$shell_quote($$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch)
666
+
inst_html_docs.files = $$QMAKE_DOCS_OUTPUTDIR
667
+
- inst_html_docs.path = $$[QT_INSTALL_DOCS]
668
+
+ inst_html_docs.path = $$NIX_OUTPUT_DOC
669
+
inst_html_docs.CONFIG += no_check_exist directory no_default_install no_build
670
+
INSTALLS += inst_html_docs
672
+
inst_qch_docs.files = $$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch
673
+
- inst_qch_docs.path = $$[QT_INSTALL_DOCS]
674
+
+ inst_qch_docs.path = $$NIX_OUTPUT_DOC
675
+
inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
676
+
INSTALLS += inst_qch_docs
678
+
diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
679
+
index 668669e4cd..30f7fbac41 100644
680
+
--- a/mkspecs/features/qt_example_installs.prf
681
+
+++ b/mkspecs/features/qt_example_installs.prf
682
+
@@ -77,13 +77,13 @@ for(extra, extras): \
683
+
# Just for Qt Creator
684
+
OTHER_FILES += $$sourcefiles
687
+
- $$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
688
+
- $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
689
+
- $$DBUS_ADAPTORS $$DBUS_INTERFACES
690
+
-addInstallFiles(sources.files, $$sourcefiles)
691
+
-sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
692
+
-INSTALLS += sources
694
+
+ $$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
695
+
+ $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
696
+
+ $$DBUS_ADAPTORS $$DBUS_INTERFACES
697
+
+ addInstallFiles(sources.files, $$sourcefiles)
698
+
+ sources.path = $$NIX_OUTPUT_DEV/share/examples/$$probase
699
+
+ INSTALLS += sources
702
+
srcfiles = $$sources.files
703
+
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
704
+
index 1903e509c8..ae7b585989 100644
705
+
--- a/mkspecs/features/qt_functions.prf
706
+
+++ b/mkspecs/features/qt_functions.prf
707
+
@@ -69,7 +69,7 @@ defineTest(qtHaveModule) {
708
+
defineTest(qtPrepareTool) {
709
+
cmd = $$eval(QT_TOOL.$${2}.binary)
711
+
- cmd = $$[QT_HOST_BINS]/$$2
712
+
+ cmd = $$system("command -v $$2")
713
+
exists($${cmd}.pl) {
714
+
$${1}_EXE = $${cmd}.pl
715
+
cmd = perl -w $$system_path($${cmd}.pl)
716
+
diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
717
+
index 90d84cc535..387481bfc6 100644
718
+
--- a/mkspecs/features/qt_installs.prf
719
+
+++ b/mkspecs/features/qt_installs.prf
720
+
@@ -12,16 +12,10 @@
722
+
!qt_no_install_library {
725
+
- dlltarget.path = $$[QT_HOST_BINS]
727
+
- dlltarget.path = $$[QT_INSTALL_BINS]
728
+
+ dlltarget.path = $$NIX_OUTPUT_BIN/bin
729
+
INSTALLS += dlltarget
732
+
- target.path = $$[QT_HOST_LIBS]
734
+
- target.path = $$[QT_INSTALL_LIBS]
735
+
+ target.path = $$NIX_OUTPUT_OUT/lib
736
+
!static: target.CONFIG = no_dll
739
+
@@ -29,33 +23,33 @@
741
+
qt_install_headers {
742
+
class_headers.files = $$SYNCQT.HEADER_CLASSES
743
+
- class_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
744
+
+ class_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
745
+
INSTALLS += class_headers
747
+
targ_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.INJECTED_HEADER_FILES
748
+
- targ_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
749
+
+ targ_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
750
+
INSTALLS += targ_headers
752
+
private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
753
+
- private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
754
+
+ private_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
755
+
INSTALLS += private_headers
757
+
qpa_headers.files = $$SYNCQT.QPA_HEADER_FILES
758
+
- qpa_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
759
+
+ qpa_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
760
+
INSTALLS += qpa_headers
764
+
qt_install_module {
765
+
!isEmpty(MODULE_PRI) {
766
+
- pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
767
+
+ pritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
768
+
pritarget.files = $$MODULE_PRI
769
+
INSTALLS += pritarget
770
+
} else: isEmpty(MODULE_PRIVATE_PRI) {
771
+
warning("Project $$basename(_PRO_FILE_) is a module, but has not defined MODULE_PRI, which is required for Qt to expose the module to other projects.")
773
+
!isEmpty(MODULE_PRIVATE_PRI) {
774
+
- privpritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
775
+
+ privpritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
776
+
privpritarget.files = $$MODULE_PRIVATE_PRI
777
+
INSTALLS += privpritarget
779
+
diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
780
+
index 62e1b69fde..abd63123f9 100644
781
+
--- a/mkspecs/features/qt_plugin.prf
782
+
+++ b/mkspecs/features/qt_plugin.prf
783
+
@@ -88,7 +88,7 @@ CONFIG(static, static|shared)|prefix_build {
787
+
-target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
788
+
+target.path = $$NIX_OUTPUT_PLUGIN/$$PLUGIN_TYPE
791
+
TARGET = $$qt5LibraryTarget($$TARGET)
792
+
diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
793
+
index 545b9a3d1e..6ac0cdefe4 100644
794
+
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
795
+
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
796
+
@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qmake)
797
+
add_executable(Qt5::qmake IMPORTED)
799
+
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
800
+
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
801
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
803
+
set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
805
+
@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::moc)
806
+
add_executable(Qt5::moc IMPORTED)
808
+
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
809
+
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
810
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
812
+
set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
814
+
@@ -35,7 +35,7 @@ if (NOT TARGET Qt5::rcc)
815
+
add_executable(Qt5::rcc IMPORTED)
817
+
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
818
+
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
819
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
821
+
set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
823
+
@@ -133,7 +133,7 @@ if (NOT TARGET Qt5::WinMain)
824
+
!!IF !isEmpty(CMAKE_RELEASE_TYPE)
825
+
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
826
+
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
827
+
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
828
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
830
+
set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
832
+
@@ -147,7 +147,7 @@ if (NOT TARGET Qt5::WinMain)
833
+
set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
835
+
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
836
+
- set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
837
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
839
+
set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
841
+
diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
842
+
index c357237d0e..6f0c75de3c 100644
843
+
--- a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
844
+
+++ b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
847
+
!!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
848
+
-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
849
+
+set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
851
+
set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
853
+
diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
854
+
index 706304cf34..546420f6ad 100644
855
+
--- a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
856
+
+++ b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
859
+
!!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
860
+
-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
861
+
+set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
863
+
set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
865
+
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
866
+
index 609e52d9d2..f0f29ce61f 100644
867
+
--- a/src/corelib/kernel/qcoreapplication.cpp
868
+
+++ b/src/corelib/kernel/qcoreapplication.cpp
869
+
@@ -2580,6 +2580,15 @@ QStringList QCoreApplication::libraryPaths()
870
+
QStringList *app_libpaths = new QStringList;
871
+
coreappdata()->app_libpaths.reset(app_libpaths);
873
+
+ // Add library paths derived from PATH
874
+
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
875
+
+ const QString plugindir = QStringLiteral("../" NIXPKGS_QT_PLUGIN_PREFIX);
876
+
+ for (const QString &path: paths) {
877
+
+ if (!path.isEmpty()) {
878
+
+ app_libpaths->append(QDir::cleanPath(path + QDir::separator() + plugindir));
882
+
const QByteArray libPathEnv = qgetenv("QT_PLUGIN_PATH");
883
+
if (!libPathEnv.isEmpty()) {
884
+
QStringList paths = QFile::decodeName(libPathEnv).split(QDir::listSeparator(), QString::SkipEmptyParts);
885
+
diff --git a/src/corelib/tools/qtimezoneprivate_tz.cpp b/src/corelib/tools/qtimezoneprivate_tz.cpp
886
+
index bcc1285472..a77eb472a3 100644
887
+
--- a/src/corelib/tools/qtimezoneprivate_tz.cpp
888
+
+++ b/src/corelib/tools/qtimezoneprivate_tz.cpp
889
+
@@ -70,7 +70,11 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
890
+
// Parse zone.tab table, assume lists all installed zones, if not will need to read directories
891
+
static QTzTimeZoneHash loadTzTimeZones()
893
+
- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
894
+
+ // Try TZDIR first, in case we're running on NixOS.
895
+
+ QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab");
896
+
+ // Fallback to traditional paths in case we are not on NixOS.
897
+
+ if (!QFile::exists(path))
898
+
+ path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
899
+
if (!QFile::exists(path))
900
+
path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
902
+
@@ -644,12 +648,16 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
903
+
if (!tzif.open(QIODevice::ReadOnly))
906
+
- // Open named tz, try modern path first, if fails try legacy path
907
+
- tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
908
+
+ // Try TZDIR first, in case we're running on NixOS
909
+
+ tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId));
910
+
if (!tzif.open(QIODevice::ReadOnly)) {
911
+
- tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
912
+
- if (!tzif.open(QIODevice::ReadOnly))
914
+
+ // Open named tz, try modern path first, if fails try legacy path
915
+
+ tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
916
+
+ if (!tzif.open(QIODevice::ReadOnly)) {
917
+
+ tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
918
+
+ if (!tzif.open(QIODevice::ReadOnly))
924
+
diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
925
+
index 1d947159e2..b36865fc48 100644
926
+
--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
927
+
+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
929
+
if (NOT TARGET Qt5::qdbuscpp2xml)
930
+
add_executable(Qt5::qdbuscpp2xml IMPORTED)
932
+
-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
933
+
- set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
935
+
- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
937
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
938
+
_qt5_DBus_check_file_exists(${imported_location})
940
+
set_target_properties(Qt5::qdbuscpp2xml PROPERTIES
941
+
@@ -17,11 +13,7 @@ endif()
942
+
if (NOT TARGET Qt5::qdbusxml2cpp)
943
+
add_executable(Qt5::qdbusxml2cpp IMPORTED)
945
+
-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
946
+
- set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
948
+
- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
950
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
951
+
_qt5_DBus_check_file_exists(${imported_location})
953
+
set_target_properties(Qt5::qdbusxml2cpp PROPERTIES
954
+
diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
955
+
index 07869efd7d..37b95d1b6b 100644
956
+
--- a/src/gui/Qt5GuiConfigExtras.cmake.in
957
+
+++ b/src/gui/Qt5GuiConfigExtras.cmake.in
959
+
!!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
961
+
!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
962
+
-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
963
+
+set(Qt5Gui_EGL_INCLUDE_DIRS \"$$NIX_OUTPUT_DEV/$$CMAKE_INCLUDE_DIR/QtANGLE\")
965
+
set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
967
+
@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_properties TargetName Configuration LIB_LOCATIO
968
+
set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
970
+
!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
971
+
- set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
972
+
+ set(imported_location \"$$NIX_OUTPUT_OUT/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
974
+
set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
977
+
!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
978
+
- set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
979
+
+ set(imported_implib \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
981
+
set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
983
+
diff --git a/src/network/kernel/qdnslookup_unix.cpp b/src/network/kernel/qdnslookup_unix.cpp
984
+
index 1da00813ce..0bf877afcb 100644
985
+
--- a/src/network/kernel/qdnslookup_unix.cpp
986
+
+++ b/src/network/kernel/qdnslookup_unix.cpp
987
+
@@ -92,7 +92,7 @@ static bool resolveLibraryInternal()
991
+
- lib.setFileName(QLatin1String("resolv"));
992
+
+ lib.setFileName(QLatin1String(NIXPKGS_LIBRESOLV));
996
+
diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp
997
+
index 8d2cffc304..9730fb33f2 100644
998
+
--- a/src/network/kernel/qhostinfo_unix.cpp
999
+
+++ b/src/network/kernel/qhostinfo_unix.cpp
1000
+
@@ -98,7 +98,7 @@ static bool resolveLibraryInternal()
1004
+
- lib.setFileName(QLatin1String("resolv"));
1005
+
+ lib.setFileName(QLatin1String(NIXPKGS_LIBRESOLV));
1009
+
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
1010
+
index 341d3bccf2..3368234c26 100644
1011
+
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
1012
+
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
1013
+
@@ -287,7 +287,7 @@ void QScanThread::getUserConfigurations()
1014
+
QMacAutoReleasePool pool;
1015
+
userProfiles.clear();
1017
+
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
1018
+
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
1019
+
for (NSString *ifName in wifiInterfaces) {
1021
+
CWInterface *wifiInterface = [[CWWiFiClient sharedWiFiClient] interfaceWithName:ifName];
1022
+
@@ -602,7 +602,7 @@ void QCoreWlanEngine::doRequestUpdate()
1024
+
QMacAutoReleasePool pool;
1026
+
- NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
1027
+
+ NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
1028
+
for (NSString *ifName in wifiInterfaces) {
1029
+
scanThread->interfaceName = QString::fromNSString(ifName);
1030
+
scanThread->start();
1031
+
diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
1032
+
index b5a0a5bbeb..6c20305f4d 100644
1033
+
--- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
1034
+
+++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
1035
+
@@ -265,12 +265,9 @@ void TableGenerator::initPossibleLocations()
1036
+
m_possibleLocations.reserve(7);
1037
+
if (qEnvironmentVariableIsSet("QTCOMPOSE"))
1038
+
m_possibleLocations.append(QString::fromLocal8Bit(qgetenv("QTCOMPOSE")));
1039
+
- m_possibleLocations.append(QStringLiteral("/usr/share/X11/locale"));
1040
+
- m_possibleLocations.append(QStringLiteral("/usr/local/share/X11/locale"));
1041
+
- m_possibleLocations.append(QStringLiteral("/usr/lib/X11/locale"));
1042
+
- m_possibleLocations.append(QStringLiteral("/usr/local/lib/X11/locale"));
1043
+
m_possibleLocations.append(QStringLiteral(X11_PREFIX "/share/X11/locale"));
1044
+
m_possibleLocations.append(QStringLiteral(X11_PREFIX "/lib/X11/locale"));
1045
+
+ m_possibleLocations.append(QLatin1String(NIXPKGS_QTCOMPOSE));
1048
+
QString TableGenerator::findComposeFile()
1049
+
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
1050
+
index 3bc8590d36..2a78fde518 100644
1051
+
--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
1052
+
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
1053
+
@@ -580,7 +580,14 @@ QFunctionPointer QGLXContext::getProcAddress(const char *procName)
1054
+
#if QT_CONFIG(library)
1055
+
extern const QString qt_gl_library_name();
1056
+
// QLibrary lib(qt_gl_library_name());
1057
+
+ // Check system library paths first
1058
+
QLibrary lib(QLatin1String("GL"));
1059
+
+#ifdef NIXPKGS_MESA_GL
1060
+
+ if (!lib.load()) {
1061
+
+ // Fallback to Mesa driver
1062
+
+ lib.setFileName(QLatin1String(NIXPKGS_MESA_GL));
1064
+
+#endif // NIXPKGS_MESA_GL
1065
+
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
1068
+
diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
1069
+
index da63360333..95e34e2e50 100644
1070
+
--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
1071
+
+++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
1072
+
@@ -311,10 +311,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen)
1073
+
#if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
1074
+
static bool function_ptrs_not_initialized = true;
1075
+
if (function_ptrs_not_initialized) {
1076
+
- QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
1077
+
+ QLibrary xcursorLib(QLatin1String(NIXPKGS_LIBXCURSOR), 1);
1078
+
bool xcursorFound = xcursorLib.load();
1079
+
if (!xcursorFound) { // try without the version number
1080
+
- xcursorLib.setFileName(QLatin1String("Xcursor"));
1081
+
+ xcursorLib.setFileName(QLatin1String(NIXPKGS_LIBXCURSOR));
1082
+
xcursorFound = xcursorLib.load();
1084
+
if (xcursorFound) {
1085
+
diff --git a/src/plugins/platformthemes/gtk3/main.cpp b/src/plugins/platformthemes/gtk3/main.cpp
1086
+
index c4cd66c33b..b6f2691587 100644
1087
+
--- a/src/plugins/platformthemes/gtk3/main.cpp
1088
+
+++ b/src/plugins/platformthemes/gtk3/main.cpp
1091
+
#include <qpa/qplatformthemeplugin.h>
1092
+
#include "qgtk3theme.h"
1095
+
QT_BEGIN_NAMESPACE
1097
+
@@ -54,8 +55,22 @@ public:
1098
+
QPlatformTheme *QGtk3ThemePlugin::create(const QString &key, const QStringList ¶ms)
1101
+
- if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive))
1102
+
+ if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive)) {
1104
+
+#ifdef NIXPKGS_QGTK3_XDG_DATA_DIRS
1105
+
+ QStringList XDG_DATA_DIRS = QFile::decodeName(qgetenv("XDG_DATA_DIRS")).split(':');
1106
+
+ XDG_DATA_DIRS << QLatin1String(NIXPKGS_QGTK3_XDG_DATA_DIRS);
1107
+
+ qputenv("XDG_DATA_DIRS", QFile::encodeName(XDG_DATA_DIRS.join(':')));
1110
+
+#ifdef NIXPKGS_QGTK3_GIO_EXTRA_MODULES
1111
+
+ QStringList GIO_EXTRA_MODULES = QFile::decodeName(qgetenv("GIO_EXTRA_MODULES")).split(':');
1112
+
+ GIO_EXTRA_MODULES << QLatin1String(NIXPKGS_QGTK3_GIO_EXTRA_MODULES);
1113
+
+ qputenv("GIO_EXTRA_MODULES", QFile::encodeName(GIO_EXTRA_MODULES.join(':')));
1116
+
return new QGtk3Theme;
1121
+
diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
1122
+
index 99d87e2e46..a4eab2aa72 100644
1123
+
--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
1124
+
+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
1125
+
@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
1126
+
add_executable(Qt5::uic IMPORTED)
1128
+
!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
1129
+
- set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
1130
+
+ set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
1132
+
set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")