load(default_post) # Ensure that we process sdk.prf first, as it will update QMAKE_CXX # and friends that other features/extra compilers may depend on. sdk: load(sdk) !no_objective_c:CONFIG += objective_c qt { qtConfig(static) { # C++11 support means using libc++ instead of libstd++. As the # two libraries are incompatible we need to ensure the end user # project is built using the same C++11 support/no support as Qt. qtConfig(c++11) { CONFIG += c++11 } else: c++11 { warning("Qt was not built with C++11 enabled, disabling feature") CONFIG -= c++11 } !c++11 { # Explicitly use libstdc++ if C++11 support is not enabled, # as otherwise the compiler will choose the standard library # based on the deployment target, which for iOS 7 and OS X 10.9 # is libc++, and we can't mix and match the two. QMAKE_CXXFLAGS += -stdlib=libstdc++ QMAKE_LFLAGS += -stdlib=libstdc++ } } } # Add the same default rpaths as Xcode does for new projects. # This is especially important for iOS/tvOS/watchOS where no other option is possible. !no_default_rpath { QMAKE_RPATHDIR += @executable_path/Frameworks equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks } !bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD macx-xcode { !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) { debug_information_format.name = DEBUG_INFORMATION_FORMAT debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT debug_information_format.build = debug QMAKE_MAC_XCODE_SETTINGS += debug_information_format } QMAKE_XCODE_ARCHS = arch_device.name = "ARCHS[sdk=$${device.sdk}*]" arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS QMAKE_MAC_XCODE_SETTINGS += arch_device simulator { arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]" arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS QMAKE_MAC_XCODE_SETTINGS += arch_simulator } only_active_arch.name = ONLY_ACTIVE_ARCH only_active_arch.value = YES only_active_arch.build = debug QMAKE_MAC_XCODE_SETTINGS += only_active_arch } else { VALID_ARCHS = device|!simulator: VALID_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS simulator: VALID_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS isEmpty(VALID_ARCHS): \ error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture") single_arch: VALID_ARCHS = $$first(VALID_ARCHS) ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS)) ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch)) QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS arch_flags = $(EXPORT_ARCH_ARGS) QMAKE_CFLAGS += $$arch_flags QMAKE_CXXFLAGS += $$arch_flags QMAKE_LFLAGS += $$arch_flags QMAKE_PCH_ARCHS = $$VALID_ARCHS } cache(QMAKE_XCODE_DEVELOPER_PATH, stash) cache(QMAKE_XCODE_VERSION, stash) QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()