diff options
Diffstat (limited to 'mkspecs')
104 files changed, 618 insertions, 1153 deletions
diff --git a/mkspecs/common/angle.conf b/mkspecs/common/angle.conf deleted file mode 100644 index fffdb581c5..0000000000 --- a/mkspecs/common/angle.conf +++ /dev/null @@ -1,9 +0,0 @@ -# Renaming these files requires that the LIBRARY entry of their corresponding -# def files are also updated to reflect the name. -# The .def files are found in the angle directories: -# -# qtbase\src\3rdparty\angle\src\libEGL\libEGL[d?].def -# qtbase\src\3rdparty\angle\src\libEGL\libGLESv2[d?].def - -LIBEGL_NAME="libEGL" -LIBGLESV2_NAME="libGLESv2" diff --git a/mkspecs/common/gcc-base-mac.conf b/mkspecs/common/gcc-base-mac.conf index e9bf780ec1..6008952537 100644 --- a/mkspecs/common/gcc-base-mac.conf +++ b/mkspecs/common/gcc-base-mac.conf @@ -8,16 +8,17 @@ # you can use the manual test in tests/manual/mkspecs. # +QMAKE_CFLAGS_PIC = -fPIC + include(gcc-base.conf) QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4 __APPLE_CC__ -QMAKE_LFLAGS += -headerpad_max_install_names - QMAKE_LFLAGS_SHLIB += -single_module -dynamiclib QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB QMAKE_LFLAGS_INCREMENTAL += -undefined suppress -flat_namespace QMAKE_LFLAGS_SONAME += -install_name$${LITERAL_WHITESPACE} +QMAKE_LFLAGS_HEADERPAD += -headerpad_max_install_names QMAKE_LFLAGS_VERSION += -current_version$${LITERAL_WHITESPACE} QMAKE_LFLAGS_COMPAT_VERSION += -compatibility_version$${LITERAL_WHITESPACE} diff --git a/mkspecs/common/gcc-base-unix.conf b/mkspecs/common/gcc-base-unix.conf index 0178bda75a..2d63877dc9 100644 --- a/mkspecs/common/gcc-base-unix.conf +++ b/mkspecs/common/gcc-base-unix.conf @@ -8,6 +8,8 @@ # you can use the manual test in tests/manual/mkspecs. # +QMAKE_CFLAGS_PIC = -fPIC + include(gcc-base.conf) QMAKE_LFLAGS_SHLIB += -shared diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 52667f130e..529beff4ab 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -33,6 +33,7 @@ QMAKE_CFLAGS_OPTIMIZE = -O2 QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 +QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og QMAKE_CFLAGS += -pipe QMAKE_CFLAGS_DEPS += -M @@ -41,9 +42,9 @@ QMAKE_CFLAGS_WARN_OFF += -w QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g QMAKE_CFLAGS_DEBUG += -g -QMAKE_CFLAGS_SHLIB += -fPIC -QMAKE_CFLAGS_STATIC_LIB += -fPIC -QMAKE_CFLAGS_APP += -fPIC +QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC +QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC +QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden diff --git a/mkspecs/common/ghs-base.conf b/mkspecs/common/ghs-base.conf index ad452ecc43..bd1f3eb5ab 100644 --- a/mkspecs/common/ghs-base.conf +++ b/mkspecs/common/ghs-base.conf @@ -8,7 +8,7 @@ QMAKE_COMPILER = ghs QMAKE_CFLAGS += --signed_fields --no_commons --diag_suppress=1,82,228,236,381,611,961,997,1795,1974 QMAKE_CFLAGS_DEPS += -MD -QMAKE_CFLAGS_RELEASE += -Ospeed -Olink -Omax -uvfd +QMAKE_CFLAGS_RELEASE += -Ospeed -Olink -Omax QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE -g QMAKE_CFLAGS_DEBUG += -g -Omaxdebug QMAKE_CFLAGS_SHLIB += @@ -17,7 +17,7 @@ QMAKE_CFLAGS_APP += QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses QMAKE_CFLAGS_HIDESYMS += -QMAKE_CXXFLAGS += $$QMAKE_CFLAGS --no_implicit_include --link_once_templates -non_shared --exceptions --new_outside_of_constructor +QMAKE_CXXFLAGS += $$QMAKE_CFLAGS --no_implicit_include --link_once_templates -non_shared --new_outside_of_constructor QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF @@ -29,11 +29,14 @@ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -QMAKE_CXXFLAGS_CXX11 += --c++11 --thread_local_storage +QMAKE_CXXFLAGS_CXX11 += --c++11 --thread_local_storage +QMAKE_CXXFLAGS_EXCEPTIONS_ON += --exceptions -QMAKE_LFLAGS += --no_commons -non_shared --link_once_templates --exceptions --stdle -QMAKE_LFLAGS_RELEASE += -Ospeed -Olink -uvfd +QMAKE_LFLAGS += --signed_fields --no_commons --no_implicit_include --link_once_templates -non_shared --new_outside_of_constructor +QMAKE_LFLAGS_DEBUG += -g -Omaxdebug +QMAKE_LFLAGS_RELEASE += -Ospeed -Olink -Omax QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_LFLAGS_RELEASE -g +QMAKE_LFLAGS_CXX11 += --c++11 --thread_local_storage +QMAKE_LFLAGS_EXCEPTIONS_ON += --exceptions QMAKE_LIBS_CORE = -lposix -livfs -lsocket -lnet -ldl -QMAKE_LIBS_GUI = -lfbdev -lhiddev diff --git a/mkspecs/common/ghs-integrity-armv7.conf b/mkspecs/common/ghs-integrity-armv7.conf index f678edb958..0c39e8ccdf 100644 --- a/mkspecs/common/ghs-integrity-armv7.conf +++ b/mkspecs/common/ghs-integrity-armv7.conf @@ -14,4 +14,6 @@ QMAKE_CXX = cxintarm -bsp $$(INTEGRITY_BSP) -os_dir $$(INTEGRITY_D QMAKE_LINK = $$QMAKE_CXX QMAKE_AR = $$QMAKE_CXX -archive -o +QMAKE_LIBS_GUI = -lfbdev -lhiddev + load(qt_config) diff --git a/mkspecs/common/ios/clang.conf b/mkspecs/common/ios/clang.conf deleted file mode 100644 index f45b89665f..0000000000 --- a/mkspecs/common/ios/clang.conf +++ /dev/null @@ -1,29 +0,0 @@ -# -# compiler settings for iOS clang compilers -# - -# iOS build flags -QMAKE_IOS_CFLAGS += -fvisibility=hidden -fpascal-strings -fmessage-length=0 -QMAKE_IOS_CFLAGS += -Wno-trigraphs -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -Wno-sign-conversion -QMAKE_IOS_CXXFLAGS += -fvisibility-inlines-hidden - -# Based on the following information, http://clang.llvm.org/doxygen/ObjCRuntime_8h_source.html, -# we can conclude that it's safe to always pass the following flags -QMAKE_IOS_OBJ_CFLAGS += -fobjc-nonfragile-abi -fobjc-legacy-dispatch - -# But these only apply to non-ARM targets -!contains(QT_ARCH, arm): QMAKE_IOS_CFLAGS += -fexceptions -fasm-blocks - -# Clang 3.1 (and above) flags -QMAKE_IOS_CFLAGS += -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-implicit-atomic-properties -Wformat -Wno-missing-braces -Wno-unused-function -Wno-unused-label -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wpointer-sign -Wno-newline-eof -Wdeprecated-declarations -Winvalid-offsetof -Wno-conversion -QMAKE_IOS_CXXFLAGS += -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -QMAKE_IOS_OBJ_CFLAGS += -Wno-deprecated-implementations -Wprotocol -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector - -# Set build flags -QMAKE_CFLAGS += $$QMAKE_IOS_CFLAGS -QMAKE_CXXFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS -QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_OBJ_CFLAGS - -QMAKE_IOS_CFLAGS = -QMAKE_IOS_CXXFLAGS = -QMAKE_IOS_OBJ_CFLAGS = diff --git a/mkspecs/common/macx.conf b/mkspecs/common/macx.conf index 69d731b48a..4be0eb3c39 100644 --- a/mkspecs/common/macx.conf +++ b/mkspecs/common/macx.conf @@ -5,4 +5,10 @@ QMAKE_PLATFORM += macos osx macx QMAKE_MAC_SDK = macosx +device.sdk = macosx +device.target = device +device.dir_affix = $${device.sdk} +device.CONFIG = $${device.sdk} +device.deployment_identifier = $${device.sdk} + include(mac.conf) diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index 52d9408c1c..02b8441547 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -8,8 +8,6 @@ # Version-specific settings go in msvc-version.conf (loaded by default_pre) # -include(angle.conf) - MAKEFILE_GENERATOR = MSVC.NET QMAKE_PLATFORM = win32 QMAKE_COMPILER = msvc @@ -91,8 +89,8 @@ QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib QMAKE_LIBS_NETWORK = ws2_32.lib QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib -QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2 = gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2_DEBUG = gdi32.lib user32.lib QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -104,3 +102,5 @@ QMAKE_RC = rc VCPROJ_EXTENSION = .vcproj VCSOLUTION_EXTENSION = .sln VCPROJ_KEYWORD = Qt4VSv1.0 + +include(windows-gles.conf) diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index 2347ca4866..a69ea98a2d 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -1,7 +1,7 @@ # # qmake configuration for Microsoft Visual Studio C/C++ Compiler # This file is used by win32-msvc, win32-clang-msvc, and all -# winphone-XXX-msvcXXXX specs +# winrt-XXX-msvcXXX specs # # diff --git a/mkspecs/common/uikit.conf b/mkspecs/common/uikit.conf index bfbab36db6..0388b8e616 100644 --- a/mkspecs/common/uikit.conf +++ b/mkspecs/common/uikit.conf @@ -3,9 +3,8 @@ # QMAKE_PLATFORM += uikit -CONFIG += bitcode reduce_exports +CONFIG += bitcode reduce_exports shallow_bundle no_qt_rpath INCLUDEPATH += $$PWD/uikit -DEFINES += DARWIN_NO_CARBON include(mac.conf) diff --git a/mkspecs/common/uikit/clang.conf b/mkspecs/common/uikit/clang.conf new file mode 100644 index 0000000000..6b9b7eea8e --- /dev/null +++ b/mkspecs/common/uikit/clang.conf @@ -0,0 +1,7 @@ +# +# compiler settings for iOS/tvOS/watchOS clang compilers +# + +# Based on the following information, http://clang.llvm.org/doxygen/ObjCRuntime_8h_source.html, +# we can conclude that it's safe to always pass the following flags +QMAKE_OBJECTIVE_CFLAGS += -fobjc-nonfragile-abi -fobjc-legacy-dispatch diff --git a/mkspecs/common/ios/qmake.conf b/mkspecs/common/uikit/qmake.conf index b579562236..45a4f0c806 100644 --- a/mkspecs/common/ios/qmake.conf +++ b/mkspecs/common/uikit/qmake.conf @@ -1,5 +1,5 @@ # -# Common build settings for all iOS configurations +# Common build settings for all iOS/tvOS/watchOS configurations # QMAKE_XCODE_CODE_SIGN_IDENTITY = "iPhone Developer" diff --git a/mkspecs/common/windows-gles.conf b/mkspecs/common/windows-gles.conf new file mode 100644 index 0000000000..78b96c42d4 --- /dev/null +++ b/mkspecs/common/windows-gles.conf @@ -0,0 +1,7 @@ +# Output name of Qt's ANGLE GLES library. (Note that this is different from upstream ANGLE) +LIBQTANGLE_NAME = QtANGLE + +# Set up .lib files used for linking +QMAKE_LIBS_OPENGL_ES2 = -l$${LIBQTANGLE_NAME} $$QMAKE_LIBS_OPENGL_ES2 +QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBQTANGLE_NAME}d $$QMAKE_LIBS_OPENGL_ES2_DEBUG + diff --git a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in deleted file mode 100644 index b02b691f48..0000000000 --- a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version=\"1.0\" encoding=\"utf-8\"?> -<Package xmlns=\"http://schemas.microsoft.com/appx/2010/manifest\" xmlns:m2=\"http://schemas.microsoft.com/appx/2013/manifest\"> - <Identity - Name=\"$${WINRT_MANIFEST.identity}\" - ProcessorArchitecture=\"$${WINRT_MANIFEST.architecture}\" - Publisher=\"$${WINRT_MANIFEST.publisherid}\" - Version=\"$${WINRT_MANIFEST.version}\" /> - <Properties> - <DisplayName>$${WINRT_MANIFEST.name}</DisplayName> - <PublisherDisplayName>$${WINRT_MANIFEST.publisher}</PublisherDisplayName> - <Logo>$${WINRT_MANIFEST.logo_store}</Logo> - </Properties> - <Prerequisites> - <OSMinVersion>6.3.0</OSMinVersion> - <OSMaxVersionTested>6.3.0</OSMaxVersionTested> - </Prerequisites> - <Resources> - <Resource Language=\"en\" /> - </Resources> - <Applications> - <Application - Id=\"App\" - Executable=\"$${WINRT_MANIFEST.target}.exe\" - EntryPoint=\"$${WINRT_MANIFEST.target}.App\"> - <m2:VisualElements - DisplayName=\"$${WINRT_MANIFEST.name}\" - Description=\"$${WINRT_MANIFEST.description}\" - BackgroundColor=\"$${WINRT_MANIFEST.background}\" - ForegroundText=\"$${WINRT_MANIFEST.foreground}\" - Square150x150Logo=\"$${WINRT_MANIFEST.logo_150x150}\" - Square30x30Logo=\"$${WINRT_MANIFEST.logo_30x30}\"> - <m2:DefaultTile Square310x310Logo=\"$${WINRT_MANIFEST.logo_310x310}\" - Wide310x150Logo=\"$${WINRT_MANIFEST.logo_310x150}\" - Square70x70Logo=\"$${WINRT_MANIFEST.logo_70x70}\"> - <m2:ShowNameOnTiles> - <m2:ShowOn Tile=\"square150x150Logo\" /> - <m2:ShowOn Tile=\"wide310x150Logo\" /> - <m2:ShowOn Tile=\"square310x310Logo\" /> - </m2:ShowNameOnTiles> - </m2:DefaultTile> - <m2:SplashScreen Image=\"$${WINRT_MANIFEST.logo_620x300}\" />$${WINRT_MANIFEST.rotation_preference} - </m2:VisualElements> - </Application> - </Applications>$${WINRT_MANIFEST.capabilities} - $${WINRT_MANIFEST.dependencies} -</Package> -<!-- Generated by qmake using the $$[QMAKE_XSPEC] mkspec. --> diff --git a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in deleted file mode 100644 index b989f41efe..0000000000 --- a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version=\"1.0\" encoding=\"utf-8\"?> -<Package xmlns=\"http://schemas.microsoft.com/appx/2010/manifest\" xmlns:m2=\"http://schemas.microsoft.com/appx/2013/manifest\" xmlns:m3=\"http://schemas.microsoft.com/appx/2014/manifest\" xmlns:mp=\"http://schemas.microsoft.com/appx/2014/phone/manifest\"> - <Identity - Name=\"$${WINRT_MANIFEST.identity}\" - ProcessorArchitecture=\"$${WINRT_MANIFEST.architecture}\" - Publisher=\"$${WINRT_MANIFEST.publisherid}\" - Version=\"$${WINRT_MANIFEST.version}\" /> - <mp:PhoneIdentity - PhoneProductId=\"$${WINRT_MANIFEST.phone_product_id}\" - PhonePublisherId=\"$${WINRT_MANIFEST.phone_publisher_id}\" /> - <Properties> - <DisplayName>$${WINRT_MANIFEST.name}</DisplayName> - <PublisherDisplayName>$${WINRT_MANIFEST.publisher}</PublisherDisplayName> - <Logo>$${WINRT_MANIFEST.logo_store}</Logo> - </Properties> - <Prerequisites> - <OSMinVersion>6.3.1</OSMinVersion> - <OSMaxVersionTested>6.3.1</OSMaxVersionTested> - </Prerequisites> - <Resources> - <Resource Language=\"en\" /> - </Resources> - <Applications> - <Application - Id=\"App\" - Executable=\"$${WINRT_MANIFEST.target}.exe\" - EntryPoint=\"$${WINRT_MANIFEST.target}.App\"> - <m3:VisualElements - DisplayName=\"$${WINRT_MANIFEST.name}\" - Description=\"$${WINRT_MANIFEST.description}\" - BackgroundColor=\"$${WINRT_MANIFEST.background}\" - ForegroundText=\"$${WINRT_MANIFEST.foreground}\" - Square150x150Logo=\"$${WINRT_MANIFEST.logo_150x150}\" - Square44x44Logo=\"$${WINRT_MANIFEST.logo_44x44}\"> - <m3:DefaultTile Square71x71Logo=\"$${WINRT_MANIFEST.logo_71x71}\" - Wide310x150Logo=\"$${WINRT_MANIFEST.logo_310x150}\"> - <m3:ShowNameOnTiles> - <m3:ShowOn Tile=\"square150x150Logo\" /> - <m3:ShowOn Tile=\"wide310x150Logo\" /> - </m3:ShowNameOnTiles> - </m3:DefaultTile> - <m3:SplashScreen Image=\"$${WINRT_MANIFEST.logo_480x800}\" />$${WINRT_MANIFEST.rotation_preference} - </m3:VisualElements> - </Application> - </Applications>$${WINRT_MANIFEST.capabilities} - $${WINRT_MANIFEST.dependencies} -</Package> -<!-- Generated by qmake using the $$[QMAKE_XSPEC] mkspec. --> diff --git a/mkspecs/common/winrt_winphone/qmake.conf b/mkspecs/common/winrt_winphone/qmake.conf index 5f87dc0be1..818264c46b 100644 --- a/mkspecs/common/winrt_winphone/qmake.conf +++ b/mkspecs/common/winrt_winphone/qmake.conf @@ -4,8 +4,6 @@ # Written for Microsoft Visual C++ # -include(../angle.conf) - MAKEFILE_GENERATOR = MSBUILD QMAKE_COMPILER = msvc QMAKE_PLATFORM = winrt win32 @@ -81,8 +79,6 @@ QMAKE_LIBS += runtimeobject.lib QMAKE_LIBS_CORE += ws2_32.lib QMAKE_LIBS_GUI = QMAKE_LIBS_NETWORK += ws2_32.lib -QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -98,4 +94,6 @@ WINRT_ASSETS_PATH = $$PWD/assets WINRT_MANIFEST.capabilities = defaults WINRT_MANIFEST.capabilities_device = defaults +include(../windows-gles.conf) + load(qt_config) diff --git a/mkspecs/darwin-g++/qmake.conf b/mkspecs/darwin-g++/qmake.conf index 09c55456ec..85955f7af0 100644 --- a/mkspecs/darwin-g++/qmake.conf +++ b/mkspecs/darwin-g++/qmake.conf @@ -56,7 +56,6 @@ QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib QMAKE_LINK = c++ QMAKE_LINK_SHLIB = c++ -QMAKE_LFLAGS += -headerpad_max_install_names QMAKE_LFLAGS = QMAKE_LFLAGS_RELEASE = QMAKE_LFLAGS_DEBUG = @@ -65,6 +64,7 @@ QMAKE_LFLAGS_SHLIB = -prebind -dynamiclib -single_module QMAKE_LFLAGS_PLUGIN = -prebind -bundle QMAKE_LFLAGS_THREAD = QMAKE_LFLAGS_SONAME += -install_name$${LITERAL_WHITESPACE} +QMAKE_LFLAGS_HEADERPAD += -headerpad_max_install_names QMAKE_LFLAGS_VERSION = -current_version$${LITERAL_WHITESPACE} QMAKE_LFLAGS_COMPAT_VERSION = -compatibility_version$${LITERAL_WHITESPACE} diff --git a/mkspecs/devices/common/freebsd_device_post.conf b/mkspecs/devices/common/freebsd_device_post.conf new file mode 100644 index 0000000000..1d9694af31 --- /dev/null +++ b/mkspecs/devices/common/freebsd_device_post.conf @@ -0,0 +1,5 @@ +QMAKE_CFLAGS += $$COMPILER_FLAGS +QMAKE_CXXFLAGS += $$COMPILER_FLAGS +QMAKE_LFLAGS += $$LINKER_FLAGS + +deviceSanityCheckCompiler() diff --git a/mkspecs/devices/common/freebsd_device_pre.conf b/mkspecs/devices/common/freebsd_device_pre.conf new file mode 100644 index 0000000000..97d70b5265 --- /dev/null +++ b/mkspecs/devices/common/freebsd_device_pre.conf @@ -0,0 +1,27 @@ +QT_QPA_DEFAULT_PLATFORM = bsdfb + +MAKEFILE_GENERATOR = UNIX +CONFIG += incremental +QMAKE_INCREMENTAL_STYLE = sublib + +include(../../freebsd-clang/qmake.conf) + +load(device_config) + +# modifications to g++-unix.conf +QMAKE_CC = $${CROSS_COMPILE}cc +QMAKE_CXX = $${CROSS_COMPILE}c++ +QMAKE_LINK = $${QMAKE_CXX} +QMAKE_LINK_SHLIB = $${QMAKE_CXX} + +# modifications to linux.conf +QMAKE_AR = $${CROSS_COMPILE}ar cqs +QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy +QMAKE_NM = $${CROSS_COMPILE}nm -P +QMAKE_STRIP = $${CROSS_COMPILE}strip + +# Do not set QMAKE_INCDIR to system include here +# it messes up system include order. --sysroot is +# sufficient. See link for details: +# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213217 +QMAKE_LIBDIR = $$[QT_SYSROOT]/usr/lib diff --git a/mkspecs/devices/freebsd-generic-clang/qmake.conf b/mkspecs/devices/freebsd-generic-clang/qmake.conf new file mode 100644 index 0000000000..1c3ca9b1f7 --- /dev/null +++ b/mkspecs/devices/freebsd-generic-clang/qmake.conf @@ -0,0 +1,9 @@ +# +# Generic qmake configuration for cross-compiling with clang +# +# A minimal configure line could look something like this: +# ./configure -device freebsd-generic-clang -device-option CROSS_COMPILE=/usr/armv6-freebsd/usr/bin/ + +include(../common/freebsd_device_pre.conf) +include(../common/freebsd_device_post.conf) +load(qt_config) diff --git a/mkspecs/macx-g++-32/qplatformdefs.h b/mkspecs/devices/freebsd-generic-clang/qplatformdefs.h index 063491dd90..de53ea5e16 100644 --- a/mkspecs/macx-g++-32/qplatformdefs.h +++ b/mkspecs/devices/freebsd-generic-clang/qplatformdefs.h @@ -37,5 +37,4 @@ ** ****************************************************************************/ -#include "../common/mac/qplatformdefs.h" - +#include "../../common/bsd/qplatformdefs.h" diff --git a/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf b/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf new file mode 100644 index 0000000000..2105f08c78 --- /dev/null +++ b/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf @@ -0,0 +1,25 @@ +# qmake configuration for the Raspberry Pi and Raspberry Pi 2 + +include(../common/freebsd_device_pre.conf) + +QT_QPA_DEFAULT_PLATFORM = eglfs +# Preferred eglfs backend +EGLFS_DEVICE_INTEGRATION = eglfs_brcm + +QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/usr/local/lib +QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2 +QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2 + +QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/usr/local/include \ + $$[QT_SYSROOT]/usr/local/include/interface/vcos/pthreads \ + $$[QT_SYSROOT]/usr/local/include/interface/vmcs_host/linux +QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL} +QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL} + +QMAKE_LIBS_EGL = -lEGL -lGLESv2 +QMAKE_LIBS_OPENGL_ES2 = $${QMAKE_LIBS_EGL} +QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2 + +include(../common/freebsd_device_post.conf) + +load(qt_config) diff --git a/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h b/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h new file mode 100644 index 0000000000..3fd73d421a --- /dev/null +++ b/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the qmake spec of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../freebsd-generic-clang/qplatformdefs.h" diff --git a/mkspecs/devices/linux-emu-g++/qmake.conf b/mkspecs/devices/linux-emu-g++/qmake.conf new file mode 100644 index 0000000000..1de381ee70 --- /dev/null +++ b/mkspecs/devices/linux-emu-g++/qmake.conf @@ -0,0 +1,29 @@ +# +# qmake configuration for the Qt Simulator for Embedded Linux +# (cross-compile for the x86-based Yocto image + use a custom EGL/GLES implementation) +# +# Example configure command: +# +# ./configure \ +# -prefix /usr/local/qt5 \ +# -hostprefix /usr/local/qt5-host \ +# -extprefix $PWD/../qt5 \ +# -device emu \ +# -device-option CROSS_COMPILE=$QT/Boot2Qt/emulator/toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/i586-poky-linux/i586-poky-linux- \ +# -sysroot $QT/Boot2Qt/emulator/toolchain/sysroots/i586-poky-linux \ +# -nomake examples -nomake tests -v \ +# -release -force-debug-info \ +# -opengl es2 + +include(../common/linux_device_pre.conf) + +QMAKE_LIBS_EGL = -lQtGlesStreamClient +QMAKE_LIBS_OPENGL_ES2 = $$QMAKE_LIBS_EGL +QMAKE_LIBS_OPENGL_ES2_DEBUG = $$QMAKE_LIBS_EGL + +# Preferred eglfs backend +EGLFS_DEVICE_INTEGRATION = eglfs_emu + +include(../common/linux_device_post.conf) + +load(qt_config) diff --git a/mkspecs/macx-g++40/qplatformdefs.h b/mkspecs/devices/linux-emu-g++/qplatformdefs.h index 063491dd90..6a35ed45d5 100644 --- a/mkspecs/macx-g++40/qplatformdefs.h +++ b/mkspecs/devices/linux-emu-g++/qplatformdefs.h @@ -37,5 +37,4 @@ ** ****************************************************************************/ -#include "../common/mac/qplatformdefs.h" - +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-generic-g++/qmake.conf b/mkspecs/devices/linux-generic-g++/qmake.conf new file mode 100644 index 0000000000..65cf6d0558 --- /dev/null +++ b/mkspecs/devices/linux-generic-g++/qmake.conf @@ -0,0 +1,9 @@ +# +# Generic qmake configuration for building with g++ on generic devices. +# +# A minimal configure line could look something like this: +# ./configure -device linux-generic-g++ -device-option CROSS_COMPILE=mipsel-linux-gnu- + +include(../common/linux_device_pre.conf) +include(../common/linux_device_post.conf) +load(qt_config) diff --git a/mkspecs/macx-g++42/qplatformdefs.h b/mkspecs/devices/linux-generic-g++/qplatformdefs.h index 063491dd90..6a35ed45d5 100644 --- a/mkspecs/macx-g++42/qplatformdefs.h +++ b/mkspecs/devices/linux-generic-g++/qplatformdefs.h @@ -37,5 +37,4 @@ ** ****************************************************************************/ -#include "../common/mac/qplatformdefs.h" - +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-jetson-tx1-g++/qmake.conf b/mkspecs/devices/linux-jetson-tx1-g++/qmake.conf new file mode 100644 index 0000000000..06cf329f3a --- /dev/null +++ b/mkspecs/devices/linux-jetson-tx1-g++/qmake.conf @@ -0,0 +1,51 @@ +# +# qmake configuration for Jetson TX1 boards running 64-bit Linux For Tegra +# (tested with R24.2, sample root filesystem) +# +# Note that this environment has been tested with X11 only. +# +# A typical configure line might look like the following: +# +# configure \ +# -device linux-jetson-tx1-g++ \ +# -device-option CROSS_COMPILE=/opt/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \ +# -sysroot /opt/Linux_for_Tegra/rootfs +# +# Note that this builds for GLX + OpenGL. To use EGL + OpenGL ES instead, pass +# -opengl es2 and ensure the rootfs has the headers (rootfs/usr/include/EGL, +# GLES2, GLES3), which may not be the case out of the box. +# +# Check the configure output carefully, some features may be disabled due to the +# rootfs not having the necessary dev files. +# +# If getting cryptic linker errors from static libs like libm.a, check that the +# symlinks libm.so, libz.so, etc. under rootfs/usr/lib/aarch64-linux-gnu are not +# broken. If they are, due to using absolute paths, change them so that they are +# relative to rootfs. + +include(../common/linux_device_pre.conf) + +QMAKE_INCDIR += \ + $$[QT_SYSROOT]/usr/include \ + $$[QT_SYSROOT]/usr/include/aarch64-linux-gnu + +QMAKE_LIBDIR += \ + $$[QT_SYSROOT]/usr/lib \ + $$[QT_SYSROOT]/lib/aarch64-linux-gnu \ + $$[QT_SYSROOT]/usr/lib/aarch64-linux-gnu + +QMAKE_LFLAGS += \ + -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib \ + -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib/aarch64-linux-gnu \ + -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib/aarch64-linux-gnu/tegra \ + -Wl,-rpath-link,$$[QT_SYSROOT]/lib/aarch64-linux-gnu + +DISTRO_OPTS += aarch64 +COMPILER_FLAGS += -mtune=cortex-a57.cortex-a53 -march=armv8-a + +# When configured with -opengl es2, eglfs will be functional with its +# dummy fullscreen X11 backend, in addition to xcb. +EGLFS_DEVICE_INTEGRATION = eglfs_x11 + +include(../common/linux_arm_device_post.conf) +load(qt_config) diff --git a/mkspecs/devices/linux-jetson-tx1-g++/qplatformdefs.h b/mkspecs/devices/linux-jetson-tx1-g++/qplatformdefs.h new file mode 100644 index 0000000000..e927f75015 --- /dev/null +++ b/mkspecs/devices/linux-jetson-tx1-g++/qplatformdefs.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-mipsel-ci20-g++/qmake.conf b/mkspecs/devices/linux-mipsel-ci20-g++/qmake.conf new file mode 100644 index 0000000000..6e5311eb45 --- /dev/null +++ b/mkspecs/devices/linux-mipsel-ci20-g++/qmake.conf @@ -0,0 +1,21 @@ +# +# qmake configuration for building with mips-mti-linux-gnu-g++ +# build for CI20 targets X11 +# + +CROSS_COMPILE = mips-mti-linux-gnu- + +include(../common/linux_device_pre.conf) + +QMAKE_CFLAGS = -EL -march=mips32r2 +QMAKE_CXXFLAGS = $${QMAKE_CFLAGS} +QMAKE_LFLAGS = -EL + +QT_QPA_DEFAULT_PLATFORM = xcb + +QMAKE_LIBS_EGL = -lEGL -lIMGegl -lusc +QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL} + +include(../common/linux_device_post.conf) + +load(qt_config) diff --git a/mkspecs/macx-clang-32/qplatformdefs.h b/mkspecs/devices/linux-mipsel-ci20-g++/qplatformdefs.h index 063491dd90..6a35ed45d5 100644 --- a/mkspecs/macx-clang-32/qplatformdefs.h +++ b/mkspecs/devices/linux-mipsel-ci20-g++/qplatformdefs.h @@ -37,5 +37,4 @@ ** ****************************************************************************/ -#include "../common/mac/qplatformdefs.h" - +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-rpi3-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf index 10862ccd70..10862ccd70 100644 --- a/mkspecs/devices/linux-rpi3-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf diff --git a/mkspecs/devices/linux-rpi3-g++/qplatformdefs.h b/mkspecs/devices/linux-rasp-pi3-g++/qplatformdefs.h index 5ae49b35dd..5ae49b35dd 100644 --- a/mkspecs/devices/linux-rpi3-g++/qplatformdefs.h +++ b/mkspecs/devices/linux-rasp-pi3-g++/qplatformdefs.h diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi3-vc4-g++/qmake.conf index 75b6ad7db5..75b6ad7db5 100644 --- a/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi3-vc4-g++/qmake.conf diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h b/mkspecs/devices/linux-rasp-pi3-vc4-g++/qplatformdefs.h index 6fe3b52454..6fe3b52454 100644 --- a/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h +++ b/mkspecs/devices/linux-rasp-pi3-vc4-g++/qplatformdefs.h diff --git a/mkspecs/devices/linux-rcar-h2-g++/qmake.conf b/mkspecs/devices/linux-rcar-h2-g++/qmake.conf new file mode 100644 index 0000000000..6a9346e4d3 --- /dev/null +++ b/mkspecs/devices/linux-rcar-h2-g++/qmake.conf @@ -0,0 +1,31 @@ +# +# qmake configuration for the Renesas R-Car H2 (Lager) +# +# Both eglfs and wayland should be functional, via DRM/KMS. +# +# Below is an example configure line that assumes the SDK is in +# $HOME/rcar/toolchain. 'make install' will copy the host tools to qt5-host and +# the target contents to qt5. The latter is what should be deployed to +# /usr/local/qt5 on the target device. +# +# ./configure -prefix /usr/local/qt5 -extprefix $HOME/rcar/qt5 -hostprefix $HOME/rcar/qt5-host \ +# -device rcar-h2 \ +# -device-option CROSS_COMPILE=$HOME/rcar/toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- \ +# -sysroot $HOME/rcar/toolchain/sysroots/cortexa15hf-neon-poky-linux-gnueabi \ +# -nomake examples -nomake tests -v + +include(../common/linux_device_pre.conf) + +QMAKE_LIBS_EGL += -lEGL +QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL +QMAKE_LIBS_OPENVG += -lOpenVG -lEGL + +DISTRO_OPTS += hard-float +COMPILER_FLAGS += -mtune=cortex-a15 -march=armv7-a -mfpu=neon-vfpv4 + +# Preferred eglfs backend +EGLFS_DEVICE_INTEGRATION = eglfs_kms + +include(../common/linux_arm_device_post.conf) + +load(qt_config) diff --git a/mkspecs/devices/linux-rcar-h2-g++/qplatformdefs.h b/mkspecs/devices/linux-rcar-h2-g++/qplatformdefs.h new file mode 100644 index 0000000000..e927f75015 --- /dev/null +++ b/mkspecs/devices/linux-rcar-h2-g++/qplatformdefs.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 1099e14b17..bb5083c925 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -268,7 +268,7 @@ mac { } else { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.so.$$eval(QT.$${MODULE}.VERSION) CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.so.$$eval(QT.$${MODULE}.VERSION) - CMAKE_LIB_SONAME = lib$${CMAKE_QT_STEM}.so.$$eval(QT.$${MODULE}.MAJOR_VERSION) + CMAKE_LIB_SONAME = lib$${CMAKE_QT_STEM}.so.$$section(QT.$${MODULE}.VERSION, ., 0, 0) } } diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf index 8cdad77a78..cdc5cca1d7 100644 --- a/mkspecs/features/ctest_testcase_common.prf +++ b/mkspecs/features/ctest_testcase_common.prf @@ -77,10 +77,11 @@ CMAKE_MODULE_VERSIONS = CMAKE_MODULES_UNDER_TEST = for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) { CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST) + ver = $$eval(QT.$${MODULE_UNDER_TEST}.VERSION) CMAKE_MODULE_VERSIONS += \ - -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \ - -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \ - -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION) + -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$section(ver, ., 0, 0) \ + -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$section(ver, ., 1, 1) \ + -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$section(ver, ., 2, 2) CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME } CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;) diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index d2358cae4b..866ace6c5c 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -166,6 +166,8 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) endif() !!ENDIF + set(Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS ${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}) + set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED) if (Qt5$${CMAKE_MODULE_NAME}_FIND_REQUIRED) set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED REQUIRED) @@ -243,6 +245,29 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) + set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST TRUE) + foreach (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS}) + if (NOT EXISTS ${_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR}) + set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST FALSE) + endif() + endforeach() + + if (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST) + add_library(Qt5::$${CMAKE_MODULE_NAME}Private INTERFACE IMPORTED) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME}Private PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS} + ) + set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATEDEPS) + foreach(dep ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}) + if (TARGET ${dep}Private) + list(APPEND _Qt5$${CMAKE_MODULE_NAME}_PRIVATEDEPS ${dep}Private) + endif() + endforeach() + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME}Private PROPERTY + INTERFACE_LINK_LIBRARIES Qt5::$${CMAKE_MODULE_NAME} ${_Qt5$${CMAKE_MODULE_NAME}_PRIVATEDEPS} + ) + endif() + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 60759b445e..d1ec0ce637 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -47,6 +47,11 @@ optimize_full { } } +optimize_debug { + QMAKE_CFLAGS_DEBUG += $$QMAKE_CFLAGS_OPTIMIZE_DEBUG + QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_OPTIMIZE_DEBUG +} + debug { QMAKE_CFLAGS += $$QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG diff --git a/mkspecs/features/link_ltcg.prf b/mkspecs/features/link_ltcg.prf index 734743ca13..03d0e813b6 100644 --- a/mkspecs/features/link_ltcg.prf +++ b/mkspecs/features/link_ltcg.prf @@ -1,5 +1,6 @@ gcc { - !clang:!intel_icc:greaterThan(QMAKE_HOST.cpu_count, 1) { + # on Windows, MinGW's support for -flto=N is broken + !clang:!intel_icc:!equals(QMAKE_HOST.os, Windows):greaterThan(QMAKE_HOST.cpu_count, 1) { # Override LTO number of jobs QMAKE_LFLAGS_LTCG ~= s/^-flto$/-flto=$$QMAKE_HOST.cpu_count/ } diff --git a/mkspecs/features/mac/asset_catalogs.prf b/mkspecs/features/mac/asset_catalogs.prf index 87875136c2..123a0e0fcd 100644 --- a/mkspecs/features/mac/asset_catalogs.prf +++ b/mkspecs/features/mac/asset_catalogs.prf @@ -10,6 +10,9 @@ # Name of the icon resource in the asset catalogs that will be used as the app icon. # Defaults to AppIcon. # +# QMAKE_ASSET_CATALOGS_LAUNCH_IMAGE +# Name of the launch image resource in the asset catalogs that will be used as the launch image. +# # QMAKE_ASSET_CATALOGS_INSTALL_PATH # Base path to install files to. Falls back to a path relative to the target install path, # based on QMAKE_ASSET_CATALOGS_BUILD_PATH. @@ -40,6 +43,12 @@ QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon } + !isEmpty(QMAKE_ASSET_CATALOGS_LAUNCH_IMAGE) { + asset_catalog_launchimage.name = "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME" + asset_catalog_launchimage.value = $$QMAKE_ASSET_CATALOGS_LAUNCH_IMAGE + QMAKE_MAC_XCODE_SETTINGS += asset_catalog_launchimage + } + asset_catalog_compiler.files = $$QMAKE_ASSET_CATALOGS macos: asset_catalog_compiler.path = Contents/Resources QMAKE_BUNDLE_DATA += asset_catalog_compiler @@ -49,9 +58,15 @@ --app-icon $$shell_quote($$QMAKE_ASSET_CATALOGS_APP_ICON) } + !isEmpty(QMAKE_ASSET_CATALOGS_LAUNCH_IMAGE) { + asset_catalog_launch_image_arg = \ + --launch-image $$shell_quote($$QMAKE_ASSET_CATALOGS_LAUNCH_IMAGE) + } + asset_catalog_compiler.target = $$OUT_PWD/asset_catalog_compiler.Info.plist asset_catalog_compiler.commands = $$shell_quote($$QMAKE_ACTOOL) \ $$asset_catalog_app_icon_arg \ + $$asset_catalog_launch_image_arg \ --output-partial-info-plist $$shell_quote($$asset_catalog_compiler.target) \ --platform $${version_identifier} \ --minimum-deployment-target $${deployment_target} \ diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index d93c6ed27c..3a1f7584b7 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -1,4 +1,5 @@ load(default_post) + !no_objective_c:CONFIG += objective_c qt { @@ -24,6 +25,22 @@ qt { } } +# 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 + +app_extension_api_only { + QMAKE_CFLAGS += -fapplication-extension + QMAKE_CXXFLAGS += -fapplication-extension + QMAKE_CXXFLAGS_PRECOMPILE += -fapplication-extension + QMAKE_LFLAGS += -fapplication-extension +} + macx-xcode { !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) { debug_information_format.name = DEBUG_INFORMATION_FORMAT @@ -31,26 +48,66 @@ macx-xcode { 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 { - uikit { - ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET - tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET - watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET + device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS + simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS + VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS + + isEmpty(VALID_ARCHS): \ + error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture") - device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS - simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS - # Note: uikit/default_post.prf relies on this variable as well. - VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS + single_arch: VALID_ARCHS = $$first(VALID_ARCHS) - isEmpty(VALID_ARCHS): \ - error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture") + 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 + + macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET + ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET + tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET + watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET + + # If we're doing a simulator and device build, device and simulator + # architectures use different paths and flags for the sysroot and + # deployment target switch, so we must multiplex them across multiple + # architectures using -Xarch. Otherwise we fall back to the simple path. + # This is not strictly necessary, but results in cleaner command lines + # and makes it easier for people to override EXPORT_VALID_ARCHS to limit + # individual rules to a different set of architecture(s) from the overall + # build (such as machtest in QtCore). + simulator:device { QMAKE_XARCH_CFLAGS = QMAKE_XARCH_LFLAGS = QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS - single_arch: VALID_ARCHS = $$first(VALID_ARCHS) - for (arch, VALID_ARCHS) { contains(VALID_SIMULATOR_ARCHS, $$arch) { sdk = $$simulator.sdk @@ -78,29 +135,32 @@ macx-xcode { QMAKE_XARCH_LFLAGS_$${arch} } - QMAKE_CFLAGS_USE_PRECOMPILE = - for (arch, VALID_ARCHS) { - QMAKE_CFLAGS_USE_PRECOMPILE += \ - -Xarch_$${arch} \ - -include${QMAKE_PCH_OUTPUT_$${arch}} - } - QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - - QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT} + QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) + QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) + QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS) } else { - version_identifier = macosx - deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET + simulator: \ + version_identifier = $$simulator.deployment_identifier + else: \ + version_identifier = $$device.deployment_identifier version_min_flag = -m$${version_identifier}-version-min=$$deployment_target QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag } - QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) - QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) - QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS) + # Enable precompiled headers for multiple architectures + QMAKE_CFLAGS_USE_PRECOMPILE = + for (arch, VALID_ARCHS) { + QMAKE_CFLAGS_USE_PRECOMPILE += \ + -Xarch_$${arch} \ + -include${QMAKE_PCH_OUTPUT_$${arch}} + } + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + + QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT} } cache(QMAKE_XCODE_DEVELOPER_PATH, stash) diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index cded960de1..9719241612 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -27,7 +27,7 @@ win32:count(MOC_INCLUDEPATH, 40, >) { # QNX's compiler sets "gcc" config, but does not support the -dM option; # UIKit builds are always multi-arch due to simulator_and_device (unless # -sdk is used) so this feature cannot possibly work. -if(gcc|intel_icl|msvc):!rim_qcc:!uikit { +if(gcc|intel_icl|msvc):!rim_qcc:!uikit:if(!macos|count(QMAKE_APPLE_DEVICE_ARCHS, 1)) { moc_predefs.name = "Generate moc_predefs.h" moc_predefs.CONFIG = no_link gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 7e12626db3..d49f4c49c1 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -21,6 +21,9 @@ if(win32|mac):!macx-xcode { CONFIG += relative_qt_rpath # Qt's QML plugins should be relocatable +# Qt libraries should only use Application Extension safe APIs +darwin:!no_app_extension_api_only: CONFIG += app_extension_api_only + !no_cxx_module:isEmpty(CXX_MODULE) { CXX_MODULE = $$TARGET TARGET = declarative_$${TARGET} @@ -98,10 +101,10 @@ load(qt_common) build_pass|!debug_and_release { isEmpty(IMPORT_VERSION) { no_cxx_module { - IMPORT_VERSION = $$replace(MODULE_VERSION, ^(\\d+\\.\\d+).*, \\1) + IMPORT_VERSION = $$section(MODULE_VERSION, ., 0, 1) isEmpty(IMPORT_VERSION): error("Must set IMPORT_VERSION") } else { - IMPORT_VERSION = $$eval(QT.$${CXX_MODULE}.MAJOR_VERSION).$$eval(QT.$${CXX_MODULE}.MINOR_VERSION) + IMPORT_VERSION = $$section(QT.$${CXX_MODULE}.VERSION, ., 0, 1) } } diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index 11d5695c63..150d2b2cc3 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -97,6 +97,8 @@ CONFIG += \ # resolved), nor functional (.res files end up in .prl files and break things). unix: CONFIG += explicitlib +# By default we want tests on macOS to be built as standalone executables +macos: CONFIG += testcase_no_bundle defineTest(qtBuildPart) { bp = $$eval($$upper($$section(_QMAKE_CONF_, /, -2, -2))_BUILD_PARTS) diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index eaea8f2d4b..3da6bf8c11 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -12,6 +12,8 @@ QMAKE_DIR_REPLACE_SANE += DESTDIR CONFIG -= debug_and_release_target +DEFINES *= QT_NO_NARROWING_CONVERSIONS_IN_CONNECT + qtConfig(c++11): CONFIG += c++11 strict_c++ qtConfig(c++14): CONFIG += c++14 qtConfig(c++1z): CONFIG += c++1z diff --git a/mkspecs/features/qt_config.prf b/mkspecs/features/qt_config.prf index 973a2182c9..93c54e3010 100644 --- a/mkspecs/features/qt_config.prf +++ b/mkspecs/features/qt_config.prf @@ -26,11 +26,7 @@ QMAKE_QT_CONFIG = $$[QT_HOST_DATA/get]/mkspecs/qconfig.pri QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] QT_MODULE_HOST_LIB_BASE = $$[QT_HOST_LIBS] - QT_MODULE_PLUGIN_BASE = $$[QT_INSTALL_PLUGINS] - QT_MODULE_LIBEXEC_BASE = $$[QT_INSTALL_LIBEXECS] QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] - QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] - QT_MODULE_QML_BASE = $$[QT_INSTALL_QML] include($$mod) } unset(mods) @@ -39,11 +35,7 @@ QMAKE_QT_CONFIG = $$[QT_HOST_DATA/get]/mkspecs/qconfig.pri unset(QT_MODULE_INCLUDE_BASE) unset(QT_MODULE_LIB_BASE) unset(QT_MODULE_HOST_LIB_BASE) - unset(QT_MODULE_PLUGIN_BASE) - unset(QT_MODULE_LIBEXEC_BASE) unset(QT_MODULE_BIN_BASE) - unset(QT_MODULE_IMPORT_BASE) - unset(QT_MODULE_QML_BASE) } load(qt_functions) diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2732d2ad0f..78731595b0 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -745,6 +745,10 @@ defineTest(qtConfTest_compile) { # can work with a regular main() entry point on Windows. qmake_configs += "console" + # for platforms with multiple architectures (macOS, iOS, tvOS, watchOS), + # make sure tests are only built for a single architecture + qmake_configs += "single_arch" + qmake_args += "\"CONFIG += $$qmake_configs\"" !$$host|!cross_compile { diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 999cd18154..c00fdb73f8 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -33,11 +33,13 @@ defineReplace(qtRelativeRPathBase) { darwin { if(equals(TEMPLATE, app):app_bundle)|\ if(equals(TEMPLATE, lib):plugin:plugin_bundle) { - ios: return($$target.path/$${TARGET}.app) + shallow_bundle: return($$target.path/$${TARGET}.app) return($$target.path/$${TARGET}.app/Contents/MacOS) } - equals(TEMPLATE, lib):!plugin:lib_bundle: \ + equals(TEMPLATE, lib):!plugin:lib_bundle { + shallow_bundle: return($$target.path/$${TARGET}.framework) return($$target.path/$${TARGET}.framework/Versions/Current) + } } return($$target.path) } diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index ec31e457db..22ead1b2b4 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -46,6 +46,9 @@ CONFIG(shared, static|shared):qtConfig(framework): \ CONFIG += relative_qt_rpath # Qt libraries should be relocatable +# Qt libraries should only use Application Extension safe APIs +darwin:!no_app_extension_api_only: CONFIG += app_extension_api_only + ucmodule = $$upper($$MODULE) isEmpty(MODULE_INCNAME): MODULE_INCNAME = $$TARGET @@ -64,6 +67,11 @@ else: \ MODULE_DEFINE = QT_$${ucmodule}_LIB MODULE_DEFINES = $$MODULE_DEFINE $$MODULE_DEFINES +# Make sure that the supporting runtime is linked into the application when +# the module is built with exceptions enabled. +integrity:CONFIG(exceptions, exceptions|exceptions_off): \ + MODULE_CONFIG += exceptions + load(qt_build_paths) header_module { @@ -264,7 +272,7 @@ load(qt_targets) QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ") QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION) for(i, MODULE_DEPENDS): \ - QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION)) + QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$section(QT.$${i}.VERSION, ., 0, 0)) isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \ QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module pclib_replace.match = $$lib_replace.match diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index 57160d11eb..77bedb1d7f 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -110,9 +110,6 @@ defineReplace(qtExportLibsForModule) { module_master = MODULE_PRI_CONT = \ "QT.$${MODULE_ID}.VERSION = $${VERSION}" \ - "QT.$${MODULE_ID}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \ - "QT.$${MODULE_ID}.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \ - "QT.$${MODULE_ID}.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \ "" \ "QT.$${MODULE_ID}.name = $$TARGET" \ "QT.$${MODULE_ID}.module = $$module_module" \ @@ -122,10 +119,6 @@ defineReplace(qtExportLibsForModule) { "QT.$${MODULE_ID}.frameworks =$$MODULE_FRAMEWORKS" !host_build: MODULE_PRI_CONT += \ "QT.$${MODULE_ID}.bins = \$\$QT_MODULE_BIN_BASE" \ - "QT.$${MODULE_ID}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \ - "QT.$${MODULE_ID}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \ - "QT.$${MODULE_ID}.imports = \$\$QT_MODULE_IMPORT_BASE" \ - "QT.$${MODULE_ID}.qml = \$\$QT_MODULE_QML_BASE" \ $$module_plugtypes MODULE_PRI_CONT += \ "QT.$${MODULE_ID}.depends =$$join(MODULE_DEPENDS, " ", " ")" \ @@ -151,9 +144,6 @@ defineReplace(qtExportLibsForModule) { private_deps ~= s,-private$,_private,g MODULE_PRIVATE_PRI_CONT = \ "QT.$${MODULE}_private.VERSION = $${VERSION}" \ - "QT.$${MODULE}_private.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \ - "QT.$${MODULE}_private.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \ - "QT.$${MODULE}_private.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \ "" \ "QT.$${MODULE}_private.name = $${TARGET}" \ # Same name as base module "QT.$${MODULE}_private.module =" \ @@ -181,12 +171,8 @@ defineReplace(qtExportLibsForModule) { MODULE_FWD_PRI_CONT = \ "QT_MODULE_BIN_BASE = $$val_escape(MODULE_BASE_OUTDIR)/bin" \ "QT_MODULE_INCLUDE_BASE = $$val_escape(MODULE_BASE_INCDIR)/include" \ - "QT_MODULE_IMPORT_BASE = $$val_escape(MODULE_BASE_OUTDIR)/imports" \ - "QT_MODULE_QML_BASE = $$val_escape(MODULE_BASE_OUTDIR)/qml" \ "QT_MODULE_LIB_BASE = $$val_escape(MODULE_BASE_OUTDIR)/lib" \ "QT_MODULE_HOST_LIB_BASE = $$val_escape(MODULE_BASE_OUTDIR)/lib" \ - "QT_MODULE_LIBEXEC_BASE = $$val_escape(MODULE_BASE_OUTDIR)/libexec" \ - "QT_MODULE_PLUGIN_BASE = $$val_escape(MODULE_BASE_OUTDIR)/plugins" \ "include($$val_escape(MODULE_PRI))" \ "QT.$${MODULE_ID}.priority = 1" !internal_module:!no_private_module: MODULE_FWD_PRI_CONT += \ @@ -210,12 +196,8 @@ defineReplace(qtExportLibsForModule) { # This is needed for the direct include() below. Mirrors qt_config.prf QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] - QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] - QT_MODULE_QML_BASE = $$[QT_INSTALL_QML] QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] QT_MODULE_HOST_LIB_BASE = $$[QT_HOST_LIBS] - QT_MODULE_LIBEXEC_BASE = $$[QT_INSTALL_LIBEXECS] - QT_MODULE_PLUGIN_BASE = $$[QT_INSTALL_PLUGINS] } @@ -227,7 +209,7 @@ defineReplace(qtExportLibsForModule) { for(mod, mods_to_load) { for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \ name module depends run_depends plugin_types module_config CONFIG DEFINES \ - priority includes bins libs frameworks libexecs plugins imports qml \ + priority includes bins libs frameworks \ winrt_capabilities winrt_capabilities_device \ )):defined(QT.$${mod}.$$var, var):cache(QT.$${mod}.$$var, transient) } diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 80d9c87e05..62e1b69fde 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -32,6 +32,9 @@ tool_plugin { CONFIG += relative_qt_rpath # Qt's plugins should be relocatable +# Qt libraries should only use Application Extension safe APIs +darwin:!no_app_extension_api_only: CONFIG += app_extension_api_only + CONFIG(static, static|shared)|prefix_build { isEmpty(MODULE): MODULE = $$basename(TARGET) diff --git a/mkspecs/features/resolve_target.prf b/mkspecs/features/resolve_target.prf index d5ba70ca8c..a9fe0d76d6 100644 --- a/mkspecs/features/resolve_target.prf +++ b/mkspecs/features/resolve_target.prf @@ -31,7 +31,17 @@ win32 { mac { equals(TEMPLATE, lib) { - lib_bundle { + plugin:plugin_bundle { + !isEmpty(QMAKE_PLUGIN_BUNDLE_NAME): \ + plugin_target = $$QMAKE_PLUGIN_BUNDLE_NAME + else: \ + plugin_target = $$TARGET + QMAKE_RESOLVED_BUNDLE = $${QMAKE_RESOLVED_TARGET}$${plugin_target}.plugin + !shallow_bundle: \ + QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}/Contents/MacOS/$${TARGET} + else: \ + QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}$${TARGET} + } else: !plugin:lib_bundle { !isEmpty(QMAKE_FRAMEWORK_BUNDLE_NAME): \ framework_target = $$QMAKE_FRAMEWORK_BUNDLE_NAME else: \ diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index c202664c47..3e1537dde0 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -6,6 +6,9 @@ # qt_build_config tells us to re-enable exceptions here. testcase_exceptions: CONFIG += exceptions +# Set in qt_build_config.prf +testcase_no_bundle: CONFIG -= app_bundle + benchmark: type = benchmark else: type = check diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index dc4effd7f1..0a2e4122f5 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -53,31 +53,10 @@ macx-xcode { } } -macx-xcode { - arch_device.name = "ARCHS[sdk=$${device.sdk}*]" - arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]" - - arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS $$QMAKE_APPLE_SIMULATOR_ARCHS - - QMAKE_MAC_XCODE_SETTINGS += arch_device 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 { - 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 +!xcodebuild:equals(TEMPLATE, app):!isEmpty(QMAKE_INFO_PLIST) { + # Only link in photo library support if Info.plist contains + # NSPhotoLibraryUsageDescription. Otherwise it will be rejected from AppStore. + plist_path = $$absolute_path($$QMAKE_INFO_PLIST, $$_PRO_FILE_PWD_) + system("/usr/libexec/PlistBuddy -c 'Print NSPhotoLibraryUsageDescription' $$system_quote($$plist_path) &>/dev/null"): \ + QTPLUGIN += qiosnsphotolibrarysupport } diff --git a/mkspecs/features/uikit/default_pre.prf b/mkspecs/features/uikit/default_pre.prf index ecc3b9d3ab..00e29a5c8b 100644 --- a/mkspecs/features/uikit/default_pre.prf +++ b/mkspecs/features/uikit/default_pre.prf @@ -23,3 +23,6 @@ load(default_pre) # Check for supported Xcode versions lessThan(QMAKE_XCODE_VERSION, "4.3"): \ error("This mkspec requires Xcode 4.3 or later") + +ios:shared:lessThan(QMAKE_IOS_DEPLOYMENT_TARGET, "8.0"): \ + QMAKE_IOS_DEPLOYMENT_TARGET = 8.0 diff --git a/mkspecs/features/uikit/qt_config.prf b/mkspecs/features/uikit/qt_config.prf deleted file mode 100644 index 5fa5a536f8..0000000000 --- a/mkspecs/features/uikit/qt_config.prf +++ /dev/null @@ -1,19 +0,0 @@ -load(qt_config) - -isEmpty(QT_ARCH) { - # The configure tests are run without QT_ARCH being resolved yet, which - # means we fail to pass -arch to the compiler, resulting in broke tests. - # As the Xcode toolchain doesn't seem to have a way to auto-detect the - # arch based on the SDK, we have to hard-code the arch for configure. - contains(QMAKE_MAC_SDK, $${device.sdk}.*) { - QT_ARCH = arm - } else { # Simulator - ios: QT_ARCH = i386 - tvos: QT_ARCH = x64 - watchos: QT_ARCH = i386 - } - - # Prevent the arch/config tests from building as multi-arch binaries, - # as we only want the lowest common denominator features. - CONFIG += single_arch -} diff --git a/mkspecs/features/uikit/sdk.prf b/mkspecs/features/uikit/sdk.prf index 287441c760..0bfc26211a 100644 --- a/mkspecs/features/uikit/sdk.prf +++ b/mkspecs/features/uikit/sdk.prf @@ -1,4 +1,3 @@ - load(sdk) macx-xcode { diff --git a/mkspecs/features/unix/openvg.prf b/mkspecs/features/unix/openvg.prf deleted file mode 100644 index 500dfc50c6..0000000000 --- a/mkspecs/features/unix/openvg.prf +++ /dev/null @@ -1,15 +0,0 @@ -!isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG -!isEmpty(QMAKE_LIBDIR_OPENVG): QMAKE_LIBDIR += -L$$QMAKE_LIBDIR_OPENVG -!isEmpty(QMAKE_LIBS_OPENVG): LIBS += $$QMAKE_LIBS_OPENVG - -qtConfig(egl) { - !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL - !isEmpty(QMAKE_LIBDIR_EGL): LIBS += -L$$QMAKE_LIBDIR_EGL - !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL -} - -qtConfig(openvg_on_opengl) { - !isEmpty(QMAKE_INCDIR_OPENGL): INCLUDEPATH += $$QMAKE_INCDIR_OPENGL - !isEmpty(QMAKE_LIBDIR_OPENGL): QMAKE_LIBDIR += -L$$QMAKE_LIBDIR_OPENGL - !isEmpty(QMAKE_LIBS_OPENGL): LIBS += $$QMAKE_LIBS_OPENGL -} diff --git a/mkspecs/features/win32/openvg.prf b/mkspecs/features/win32/openvg.prf deleted file mode 100644 index 9d9a49d856..0000000000 --- a/mkspecs/features/win32/openvg.prf +++ /dev/null @@ -1,7 +0,0 @@ -QMAKE_LIBS += $$QMAKE_LIBS_OPENVG -QMAKE_LFLAGS += $$QMAKE_LFLAGS_OPENVG - -qtConfig(openvg_on_opengl) { - QMAKE_LIBS += $$QMAKE_LIBS_OPENGL - QMAKE_LFLAGS += $$QMAKE_LFLAGS_OPENGL -} diff --git a/mkspecs/features/winrt/default_pre.prf b/mkspecs/features/winrt/default_pre.prf index f79d04ce41..8b9c1d7663 100644 --- a/mkspecs/features/winrt/default_pre.prf +++ b/mkspecs/features/winrt/default_pre.prf @@ -1,15 +1,13 @@ -*msvc2015|*msvc2017 { - # Note that the order is important - ucrt(d) has to be first. - # Otherwise, the linker might use malloc from a different library, - # but free_dbg() from the runtime, causing an assertion failure - # due to deleting an item from a different heap. - # vcruntime(d) is necessary when we don't link to any libraries - # which would pull it in transitively. - CONFIG(debug, debug|release): \ - QMAKE_LIBS = ucrtd.lib vcruntimed.lib $$QMAKE_LIBS - else: \ - QMAKE_LIBS = ucrt.lib vcruntime.lib $$QMAKE_LIBS -} +# Note that the order is important - ucrt(d) has to be first. +# Otherwise, the linker might use malloc from a different library, +# but free_dbg() from the runtime, causing an assertion failure +# due to deleting an item from a different heap. +# vcruntime(d) is necessary when we don't link to any libraries +# which would pull it in transitively. +CONFIG(debug, debug|release): \ + QMAKE_LIBS = ucrtd.lib vcruntimed.lib $$QMAKE_LIBS +else: \ + QMAKE_LIBS = ucrt.lib vcruntime.lib $$QMAKE_LIBS equals(TEMPLATE, "vcapp"): CONFIG += windeployqt diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index e0e421ed9a..8f4a7a6eab 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -59,7 +59,6 @@ # Provide the C-runtime dependency equals(TEMPLATE, "app") { VCLIBS = Microsoft.VCLibs.$$replace(MSVC_VER, \\., ).00 - winphone: VCLIBS = $${VCLIBS}.Phone CONFIG(debug, debug|release): \ VCLIBS = $${VCLIBS}.Debug else: \ @@ -103,7 +102,6 @@ INDENT = "$$escape_expand(\\r\\n) " VS_XML_NAMESPACE = "m2" - winphone: VS_XML_NAMESPACE = "m3" WINRT_MANIFEST.rotation_preference = $$unique(WINRT_MANIFEST.rotation_preference) !isEmpty(WINRT_MANIFEST.rotation_preference) { MANIFEST_ROTATION += "<$${VS_XML_NAMESPACE}:InitialRotationPreference>" @@ -150,10 +148,8 @@ # is already inside the MSVC2015 manifest. WINRT_MANIFEST.dependencies = $$unique(WINRT_MANIFEST.dependencies) !isEmpty(WINRT_MANIFEST.dependencies) { - *-msvc2013: MANIFEST_DEPENDENCIES += "<Dependencies>" for(DEPENDENCY, WINRT_MANIFEST.dependencies): \ MANIFEST_DEPENDENCIES += " <PackageDependency Name=\"$$DEPENDENCY\" />" - *-msvc2013: MANIFEST_DEPENDENCIES += "</Dependencies>" WINRT_MANIFEST.dependencies = $$join(MANIFEST_DEPENDENCIES, $$INDENT, $$INDENT) } diff --git a/mkspecs/macx-clang-32/Info.plist.app b/mkspecs/macx-clang-32/Info.plist.app deleted file mode 100644 index 8e44bd7f60..0000000000 --- a/mkspecs/macx-clang-32/Info.plist.app +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>CFBundleIconFile</key> - <string>@ICON@</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@EXECUTABLE@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>This file was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-clang-32/Info.plist.dSYM.in b/mkspecs/macx-clang-32/Info.plist.dSYM.in deleted file mode 100644 index a8c8d0d4fb..0000000000 --- a/mkspecs/macx-clang-32/Info.plist.dSYM.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version=\"1.0\" encoding=\"UTF-8\"?> -<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> -<plist version=\"1.0\"> - <dict> - <key>CFBundleIdentifier</key> - <string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string> - <key>CFBundlePackageType</key> - <string>dSYM</string> - <key>CFBundleSignature</key> - <string>????</string> -!!IF !isEmpty(VERSION) - <key>CFBundleShortVersionString</key> - <string>$${VER_MAJ}.$${VER_MIN}</string> - <key>CFBundleVersion</key> - <string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string> -!!ENDIF - </dict> -</plist> diff --git a/mkspecs/macx-clang-32/Info.plist.lib b/mkspecs/macx-clang-32/Info.plist.lib deleted file mode 100644 index 7cbdb9af12..0000000000 --- a/mkspecs/macx-clang-32/Info.plist.lib +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@SHORT_VERSION@</string> - <key>CFBundleVersion</key> - <string>@FULL_VERSION@</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@LIBRARY@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-clang-32/qmake.conf b/mkspecs/macx-clang-32/qmake.conf deleted file mode 100644 index ba3c7cab6c..0000000000 --- a/mkspecs/macx-clang-32/qmake.conf +++ /dev/null @@ -1,16 +0,0 @@ -# -# qmake configuration for 32-bit Clang on OS X -# - -include(../common/macx.conf) -include(../common/gcc-base-mac.conf) -include(../common/clang.conf) -include(../common/clang-mac.conf) - -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - -QMAKE_CFLAGS += -arch i386 -QMAKE_CXXFLAGS += -arch i386 -QMAKE_LFLAGS += -arch i386 - -load(qt_config) diff --git a/mkspecs/macx-clang/qmake.conf b/mkspecs/macx-clang/qmake.conf index 4d56d771a1..e34c08954d 100644 --- a/mkspecs/macx-clang/qmake.conf +++ b/mkspecs/macx-clang/qmake.conf @@ -2,11 +2,13 @@ # qmake configuration for Clang on OS X # +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 + +QMAKE_APPLE_DEVICE_ARCHS = x86_64 + include(../common/macx.conf) include(../common/gcc-base-mac.conf) include(../common/clang.conf) include(../common/clang-mac.conf) -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - load(qt_config) diff --git a/mkspecs/macx-g++-32/Info.plist.app b/mkspecs/macx-g++-32/Info.plist.app deleted file mode 100644 index 8e44bd7f60..0000000000 --- a/mkspecs/macx-g++-32/Info.plist.app +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>CFBundleIconFile</key> - <string>@ICON@</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@EXECUTABLE@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>This file was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++-32/Info.plist.dSYM.in b/mkspecs/macx-g++-32/Info.plist.dSYM.in deleted file mode 100644 index a8c8d0d4fb..0000000000 --- a/mkspecs/macx-g++-32/Info.plist.dSYM.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version=\"1.0\" encoding=\"UTF-8\"?> -<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> -<plist version=\"1.0\"> - <dict> - <key>CFBundleIdentifier</key> - <string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string> - <key>CFBundlePackageType</key> - <string>dSYM</string> - <key>CFBundleSignature</key> - <string>????</string> -!!IF !isEmpty(VERSION) - <key>CFBundleShortVersionString</key> - <string>$${VER_MAJ}.$${VER_MIN}</string> - <key>CFBundleVersion</key> - <string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string> -!!ENDIF - </dict> -</plist> diff --git a/mkspecs/macx-g++-32/Info.plist.lib b/mkspecs/macx-g++-32/Info.plist.lib deleted file mode 100644 index 7cbdb9af12..0000000000 --- a/mkspecs/macx-g++-32/Info.plist.lib +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@SHORT_VERSION@</string> - <key>CFBundleVersion</key> - <string>@FULL_VERSION@</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@LIBRARY@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++-32/qmake.conf b/mkspecs/macx-g++-32/qmake.conf deleted file mode 100644 index 3cd707d537..0000000000 --- a/mkspecs/macx-g++-32/qmake.conf +++ /dev/null @@ -1,23 +0,0 @@ -#macx-g++ (different from g++.conf) - -# -# qmake configuration for macx-g++ -# -# OS X + command-line compiler -# - -MAKEFILE_GENERATOR = UNIX -CONFIG += app_bundle incremental global_init_link_order lib_version_first -QMAKE_INCREMENTAL_STYLE = sublib - -include(../common/macx.conf) -include(../common/gcc-base-mac.conf) -include(../common/g++-macx.conf) - -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - -QMAKE_CFLAGS += -arch i386 -QMAKE_CXXFLAGS += -arch i386 -QMAKE_LFLAGS += -arch i386 - -load(qt_config) diff --git a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf index 5b3105c668..4209c9a62c 100644 --- a/mkspecs/macx-g++/qmake.conf +++ b/mkspecs/macx-g++/qmake.conf @@ -10,10 +10,12 @@ MAKEFILE_GENERATOR = UNIX CONFIG += app_bundle incremental global_init_link_order lib_version_first QMAKE_INCREMENTAL_STYLE = sublib +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 + +QMAKE_APPLE_DEVICE_ARCHS = x86_64 + include(../common/macx.conf) include(../common/gcc-base-mac.conf) include(../common/g++-macx.conf) -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - load(qt_config) diff --git a/mkspecs/macx-g++40/Info.plist.app b/mkspecs/macx-g++40/Info.plist.app deleted file mode 100644 index 8e44bd7f60..0000000000 --- a/mkspecs/macx-g++40/Info.plist.app +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>CFBundleIconFile</key> - <string>@ICON@</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@EXECUTABLE@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>This file was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++40/Info.plist.dSYM.in b/mkspecs/macx-g++40/Info.plist.dSYM.in deleted file mode 100644 index a8c8d0d4fb..0000000000 --- a/mkspecs/macx-g++40/Info.plist.dSYM.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version=\"1.0\" encoding=\"UTF-8\"?> -<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> -<plist version=\"1.0\"> - <dict> - <key>CFBundleIdentifier</key> - <string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string> - <key>CFBundlePackageType</key> - <string>dSYM</string> - <key>CFBundleSignature</key> - <string>????</string> -!!IF !isEmpty(VERSION) - <key>CFBundleShortVersionString</key> - <string>$${VER_MAJ}.$${VER_MIN}</string> - <key>CFBundleVersion</key> - <string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string> -!!ENDIF - </dict> -</plist> diff --git a/mkspecs/macx-g++40/Info.plist.lib b/mkspecs/macx-g++40/Info.plist.lib deleted file mode 100644 index 7cbdb9af12..0000000000 --- a/mkspecs/macx-g++40/Info.plist.lib +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@SHORT_VERSION@</string> - <key>CFBundleVersion</key> - <string>@FULL_VERSION@</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@LIBRARY@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++40/qmake.conf b/mkspecs/macx-g++40/qmake.conf deleted file mode 100644 index 308cc2007c..0000000000 --- a/mkspecs/macx-g++40/qmake.conf +++ /dev/null @@ -1,27 +0,0 @@ -#macx-g++ (different from g++.conf) - -# -# qmake configuration for macx-g++ -# -# OS X + command-line compiler -# - -MAKEFILE_GENERATOR = UNIX -CONFIG += app_bundle incremental global_init_link_order lib_version_first -QMAKE_INCREMENTAL_STYLE = sublib - -include(../common/macx.conf) -include(../common/gcc-base-mac.conf) -include(../common/g++-macx.conf) - -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - -QMAKE_CC = gcc-4.0 -QMAKE_CXX = g++-4.0 - -QMAKE_LINK = $$QMAKE_CXX -QMAKE_LINK_SHLIB = $$QMAKE_CXX -QMAKE_LINK_C = $$QMAKE_CC -QMAKE_LINK_C_SHLIB = $$QMAKE_CC - -load(qt_config) diff --git a/mkspecs/macx-g++42/Info.plist.app b/mkspecs/macx-g++42/Info.plist.app deleted file mode 100644 index 8e44bd7f60..0000000000 --- a/mkspecs/macx-g++42/Info.plist.app +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>CFBundleIconFile</key> - <string>@ICON@</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@EXECUTABLE@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>This file was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++42/Info.plist.dSYM.in b/mkspecs/macx-g++42/Info.plist.dSYM.in deleted file mode 100644 index a8c8d0d4fb..0000000000 --- a/mkspecs/macx-g++42/Info.plist.dSYM.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version=\"1.0\" encoding=\"UTF-8\"?> -<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> -<plist version=\"1.0\"> - <dict> - <key>CFBundleIdentifier</key> - <string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string> - <key>CFBundlePackageType</key> - <string>dSYM</string> - <key>CFBundleSignature</key> - <string>????</string> -!!IF !isEmpty(VERSION) - <key>CFBundleShortVersionString</key> - <string>$${VER_MAJ}.$${VER_MIN}</string> - <key>CFBundleVersion</key> - <string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string> -!!ENDIF - </dict> -</plist> diff --git a/mkspecs/macx-g++42/Info.plist.lib b/mkspecs/macx-g++42/Info.plist.lib deleted file mode 100644 index 7cbdb9af12..0000000000 --- a/mkspecs/macx-g++42/Info.plist.lib +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@SHORT_VERSION@</string> - <key>CFBundleVersion</key> - <string>@FULL_VERSION@</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@LIBRARY@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-g++42/qmake.conf b/mkspecs/macx-g++42/qmake.conf deleted file mode 100644 index b24cb7f3f3..0000000000 --- a/mkspecs/macx-g++42/qmake.conf +++ /dev/null @@ -1,27 +0,0 @@ -#macx-g++ (different from g++.conf) - -# -# qmake configuration for macx-g++ -# -# OS X + command-line compiler -# - -MAKEFILE_GENERATOR = UNIX -CONFIG += app_bundle incremental global_init_link_order lib_version_first -QMAKE_INCREMENTAL_STYLE = sublib - -include(../common/macx.conf) -include(../common/gcc-base-mac.conf) -include(../common/g++-macx.conf) - -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - -QMAKE_CC = gcc-4.2 -QMAKE_CXX = g++-4.2 - -QMAKE_LINK = $$QMAKE_CXX -QMAKE_LINK_SHLIB = $$QMAKE_CXX -QMAKE_LINK_C = $$QMAKE_CC -QMAKE_LINK_C_SHLIB = $$QMAKE_CC - -load(qt_config) diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index 0a94ae472d..533f9cd86d 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -64,13 +64,14 @@ QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_LINK = icpc QMAKE_LINK_SHLIB = icpc -QMAKE_LFLAGS = -headerpad_max_install_names +QMAKE_LFLAGS = QMAKE_LFLAGS_RELEASE = QMAKE_LFLAGS_DEBUG = QMAKE_LFLAGS_SHLIB = -single_module -dynamiclib QMAKE_LFLAGS_INCREMENTAL = -undefined suppress -flat_namespace QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB QMAKE_LFLAGS_SONAME = -install_name$${LITERAL_WHITESPACE} +QMAKE_LFLAGS_HEADERPAD = -headerpad_max_install_names QMAKE_LFLAGS_THREAD = QMAKE_LFLAGS_RPATH = -Wl,-rpath, QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG @@ -90,7 +91,7 @@ QMAKE_CXXFLAGS_PRECOMPILE = -c -pch-create ${QMAKE_PCH_OUTPUT} -include ${QMAKE_ QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 include(../common/macx.conf) diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf index e21445deb7..825e03aa85 100644 --- a/mkspecs/macx-ios-clang/qmake.conf +++ b/mkspecs/macx-ios-clang/qmake.conf @@ -2,7 +2,7 @@ # qmake configuration for macx-ios-clang # -QMAKE_IOS_DEPLOYMENT_TARGET = 7.0 +QMAKE_IOS_DEPLOYMENT_TARGET = 8.0 # Universal target (iPhone and iPad) QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1,2 @@ -14,7 +14,7 @@ include(../common/ios.conf) include(../common/gcc-base-mac.conf) include(../common/clang.conf) include(../common/clang-mac.conf) -include(../common/ios/clang.conf) -include(../common/ios/qmake.conf) +include(../common/uikit/clang.conf) +include(../common/uikit/qmake.conf) load(qt_config) diff --git a/mkspecs/macx-llvm/Info.plist.app b/mkspecs/macx-llvm/Info.plist.app deleted file mode 100644 index 8e44bd7f60..0000000000 --- a/mkspecs/macx-llvm/Info.plist.app +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>CFBundleIconFile</key> - <string>@ICON@</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@EXECUTABLE@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>This file was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-llvm/Info.plist.dSYM.in b/mkspecs/macx-llvm/Info.plist.dSYM.in deleted file mode 100644 index a8c8d0d4fb..0000000000 --- a/mkspecs/macx-llvm/Info.plist.dSYM.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version=\"1.0\" encoding=\"UTF-8\"?> -<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> -<plist version=\"1.0\"> - <dict> - <key>CFBundleIdentifier</key> - <string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string> - <key>CFBundlePackageType</key> - <string>dSYM</string> - <key>CFBundleSignature</key> - <string>????</string> -!!IF !isEmpty(VERSION) - <key>CFBundleShortVersionString</key> - <string>$${VER_MAJ}.$${VER_MIN}</string> - <key>CFBundleVersion</key> - <string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string> -!!ENDIF - </dict> -</plist> diff --git a/mkspecs/macx-llvm/Info.plist.lib b/mkspecs/macx-llvm/Info.plist.lib deleted file mode 100644 index 7cbdb9af12..0000000000 --- a/mkspecs/macx-llvm/Info.plist.lib +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@SHORT_VERSION@</string> - <key>CFBundleVersion</key> - <string>@FULL_VERSION@</string> - <key>CFBundleGetInfoString</key> - <string>Created by Qt/QMake</string> - <key>CFBundleSignature</key> - <string>@TYPEINFO@</string> - <key>CFBundleExecutable</key> - <string>@LIBRARY@</string> - <key>CFBundleIdentifier</key> - <string>@BUNDLEIDENTIFIER@</string> - <key>NOTE</key> - <string>Please, do NOT change this file -- It was generated by Qt/QMake.</string> -</dict> -</plist> diff --git a/mkspecs/macx-llvm/qmake.conf b/mkspecs/macx-llvm/qmake.conf deleted file mode 100644 index 0434d29b50..0000000000 --- a/mkspecs/macx-llvm/qmake.conf +++ /dev/null @@ -1,26 +0,0 @@ -#macx-g++ (different from g++.conf) - -# -# qmake configuration for macx-g++ -# -# OS X + command-line compiler -# - -MAKEFILE_GENERATOR = UNIX -CONFIG += app_bundle incremental global_init_link_order lib_version_first -QMAKE_INCREMENTAL_STYLE = sublib - -include(../common/macx.conf) -include(../common/gcc-base-mac.conf) -include(../common/llvm.conf) - -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9 - -QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvmgcc42 - -QMAKE_OBJCFLAGS_PRECOMPILE = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - -load(qt_config) diff --git a/mkspecs/macx-llvm/qplatformdefs.h b/mkspecs/macx-llvm/qplatformdefs.h deleted file mode 100644 index 063491dd90..0000000000 --- a/mkspecs/macx-llvm/qplatformdefs.h +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/mac/qplatformdefs.h" - diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf index e945cc9d28..ab1a95fe88 100644 --- a/mkspecs/macx-tvos-clang/qmake.conf +++ b/mkspecs/macx-tvos-clang/qmake.conf @@ -2,9 +2,7 @@ # qmake configuration for macx-tvos-clang # -QMAKE_TVOS_DEPLOYMENT_TARGET = 9.1 - -INCLUDEPATH += $$PWD/tvos +QMAKE_TVOS_DEPLOYMENT_TARGET = 10.0 QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 3 @@ -15,7 +13,7 @@ include(../common/tvos.conf) include(../common/gcc-base-mac.conf) include(../common/clang.conf) include(../common/clang-mac.conf) -include(../common/ios/clang.conf) -include(../common/ios/qmake.conf) +include(../common/uikit/clang.conf) +include(../common/uikit/qmake.conf) load(qt_config) diff --git a/mkspecs/macx-watchos-clang/qmake.conf b/mkspecs/macx-watchos-clang/qmake.conf index 03c05ad717..bd28722d44 100644 --- a/mkspecs/macx-watchos-clang/qmake.conf +++ b/mkspecs/macx-watchos-clang/qmake.conf @@ -2,9 +2,7 @@ # qmake configuration for macx-watchos-clang # -QMAKE_WATCHOS_DEPLOYMENT_TARGET = 2.2 - -INCLUDEPATH += $$PWD/watchos +QMAKE_WATCHOS_DEPLOYMENT_TARGET = 3.0 QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 4 @@ -15,7 +13,7 @@ include(../common/watchos.conf) include(../common/gcc-base-mac.conf) include(../common/clang.conf) include(../common/clang-mac.conf) -include(../common/ios/clang.conf) -include(../common/ios/qmake.conf) +include(../common/uikit/clang.conf) +include(../common/uikit/qmake.conf) load(qt_config) diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 6ed39745ae..d6b08f5323 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -8,7 +8,7 @@ # load(device_config) -include(../common/angle.conf) +include(../common/g++-base.conf) MAKEFILE_GENERATOR = MINGW QMAKE_PLATFORM = win32 mingw @@ -19,52 +19,21 @@ QMAKE_COMPILER_DEFINES += __GNUC__ WIN32 QMAKE_EXT_OBJ = .o QMAKE_EXT_RES = _res.o -QMAKE_COMPILER = gcc QMAKE_CC = $${CROSS_COMPILE}gcc QMAKE_LEX = flex QMAKE_LEXFLAGS = QMAKE_YACC = bison -y QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -Wextra -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -O2 -g -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -QMAKE_CFLAGS_SSE2 = -msse2 -mstackrealign -QMAKE_CFLAGS_SSE3 = -msse3 -QMAKE_CFLAGS_SSSE3 = -mssse3 -QMAKE_CFLAGS_SSE4_1 = -msse4.1 -QMAKE_CFLAGS_SSE4_2 = -msse4.2 -QMAKE_CFLAGS_AVX = -mavx -QMAKE_CFLAGS_AVX2 = -mavx2 -QMAKE_CFLAGS_NEON = -mfpu=neon +QMAKE_CFLAGS += -fno-keep-inline-dllexport +QMAKE_CFLAGS_WARN_ON += -Wextra +QMAKE_CFLAGS_SSE2 += -mstackrealign QMAKE_CXX = $${CROSS_COMPILE}g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_CXXFLAGS_RTTI_ON = -frtti QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads -QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions -QMAKE_CXXFLAGS_CXX11 = -std=c++11 -QMAKE_CXXFLAGS_CXX14 = -std=c++1y -QMAKE_CXXFLAGS_CXX1Z = -std=c++1z -QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 -QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y -QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z -QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_INCDIR = @@ -75,17 +44,11 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< QMAKE_LINK = $${CROSS_COMPILE}g++ QMAKE_LINK_C = $${CROSS_COMPILE}gcc -QMAKE_LFLAGS = QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -QMAKE_LFLAGS_EXCEPTIONS_OFF = QMAKE_LFLAGS_RELEASE = -Wl,-s -QMAKE_LFLAGS_DEBUG = QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows QMAKE_LFLAGS_DLL = -shared -QMAKE_LFLAGS_CXX11 = -QMAKE_LFLAGS_CXX14 = -QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT = object_script @@ -100,8 +63,8 @@ QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 QMAKE_LIBS_NETWORK = -lws2_32 QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2 = -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2_DEBUG = -lgdi32 -luser32 QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain @@ -113,4 +76,8 @@ QMAKE_STRIP = $${CROSS_COMPILE}strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy QMAKE_NM = $${CROSS_COMPILE}nm -P + +include(../common/windows-gles.conf) +include(../common/gcc-base.conf) + load(qt_config) diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index dcbbc027ea..6e2589b4c4 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -55,4 +55,7 @@ QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_LIB = xilib /NOLOGO DSP_EXTENSION = .dsp + +include(../common/windows-gles.conf) + load(qt_config) diff --git a/mkspecs/winphone-arm-msvc2013/qmake.conf b/mkspecs/winphone-arm-msvc2013/qmake.conf deleted file mode 100644 index 7656adbf00..0000000000 --- a/mkspecs/winphone-arm-msvc2013/qmake.conf +++ /dev/null @@ -1,22 +0,0 @@ -# -# qmake configuration for winphone-arm-msvc2013 -# -# Written for Microsoft Visual C++ 2013 -# - -include(../common/winrt_winphone/qmake.conf) -QMAKE_PLATFORM = winphone $$QMAKE_PLATFORM -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP ARM __ARM__ __ARM__ -CONFIG += no_generated_target_info - -QMAKE_CFLAGS += -FS -QMAKE_CXXFLAGS += -FS -QMAKE_LFLAGS += /MACHINE:ARM /NODEFAULTLIB:kernel32.lib - -QMAKE_LIBS += WindowsPhoneCore.lib PhoneAppModelHost.lib - -VCPROJ_ARCH = ARM -WINSDK_VER = 8.1 -WINTARGET_VER = WP81 -WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in -WINRT_MANIFEST.architecture = arm diff --git a/mkspecs/winphone-arm-msvc2013/qplatformdefs.h b/mkspecs/winphone-arm-msvc2013/qplatformdefs.h deleted file mode 100644 index 2a1aef5e88..0000000000 --- a/mkspecs/winphone-arm-msvc2013/qplatformdefs.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/winrt_winphone/qplatformdefs.h" diff --git a/mkspecs/winphone-x86-msvc2013/qmake.conf b/mkspecs/winphone-x86-msvc2013/qmake.conf deleted file mode 100644 index aa9e5b791b..0000000000 --- a/mkspecs/winphone-x86-msvc2013/qmake.conf +++ /dev/null @@ -1,22 +0,0 @@ -# -# qmake configuration for winphone-x86-msvc2013 -# -# Written for Microsoft Visual C++ 2013 -# - -include(../common/winrt_winphone/qmake.conf) -QMAKE_PLATFORM = winphone $$QMAKE_PLATFORM -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP X86 __X86__ __x86__ -CONFIG += no_generated_target_info - -QMAKE_CFLAGS += -FS -QMAKE_CXXFLAGS += -FS -QMAKE_LFLAGS += /MACHINE:X86 /NODEFAULTLIB:kernel32.lib - -QMAKE_LIBS += WindowsPhoneCore.lib PhoneAppModelHost.lib - -VCPROJ_ARCH = Win32 -WINSDK_VER = 8.1 -WINTARGET_VER = WP81 -WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in -WINRT_MANIFEST.architecture = x86 diff --git a/mkspecs/winphone-x86-msvc2013/qplatformdefs.h b/mkspecs/winphone-x86-msvc2013/qplatformdefs.h deleted file mode 100644 index 2a1aef5e88..0000000000 --- a/mkspecs/winphone-x86-msvc2013/qplatformdefs.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/winrt_winphone/qplatformdefs.h" diff --git a/mkspecs/winrt-arm-msvc2013/qmake.conf b/mkspecs/winrt-arm-msvc2013/qmake.conf deleted file mode 100644 index 14bd16d555..0000000000 --- a/mkspecs/winrt-arm-msvc2013/qmake.conf +++ /dev/null @@ -1,20 +0,0 @@ -# -# qmake configuration for winrt-arm-msvc2013 -# -# Written for Microsoft Visual C++ 2013 -# - -include(../common/winrt_winphone/qmake.conf) -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP ARM __ARM__ __arm__ - -QMAKE_CFLAGS += -FS -QMAKE_CXXFLAGS += -FS -QMAKE_LFLAGS += /MACHINE:ARM - -QMAKE_LIBS += windowscodecs.lib kernel32.lib ole32.lib - -VCPROJ_ARCH = ARM -WINSDK_VER = 8.1 -WINTARGET_VER = winv6.3 -WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/8.1/AppxManifest.xml.in -WINRT_MANIFEST.architecture = arm diff --git a/mkspecs/winrt-arm-msvc2013/qplatformdefs.h b/mkspecs/winrt-arm-msvc2013/qplatformdefs.h deleted file mode 100644 index 2a1aef5e88..0000000000 --- a/mkspecs/winrt-arm-msvc2013/qplatformdefs.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/winrt_winphone/qplatformdefs.h" diff --git a/mkspecs/winrt-x64-msvc2013/qmake.conf b/mkspecs/winrt-x64-msvc2013/qmake.conf deleted file mode 100644 index 238f9f0d93..0000000000 --- a/mkspecs/winrt-x64-msvc2013/qmake.conf +++ /dev/null @@ -1,20 +0,0 @@ -# -# qmake configuration for winrt-x64-msvc2013 -# -# Written for Microsoft Visual C++ 2013 -# - -include(../common/winrt_winphone/qmake.conf) -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP X64 __X64__ __x64__ - -QMAKE_CFLAGS += -FS -QMAKE_CXXFLAGS += -FS -QMAKE_LFLAGS += /MACHINE:X64 - -QMAKE_LIBS += windowscodecs.lib kernel32.lib ole32.lib - -VCPROJ_ARCH = x64 -WINSDK_VER = 8.1 -WINTARGET_VER = winv6.3 -WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/8.1/AppxManifest.xml.in -WINRT_MANIFEST.architecture = x64 diff --git a/mkspecs/winrt-x64-msvc2013/qplatformdefs.h b/mkspecs/winrt-x64-msvc2013/qplatformdefs.h deleted file mode 100644 index 2a1aef5e88..0000000000 --- a/mkspecs/winrt-x64-msvc2013/qplatformdefs.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/winrt_winphone/qplatformdefs.h" diff --git a/mkspecs/winrt-x86-msvc2013/qmake.conf b/mkspecs/winrt-x86-msvc2013/qmake.conf deleted file mode 100644 index ae1d675b88..0000000000 --- a/mkspecs/winrt-x86-msvc2013/qmake.conf +++ /dev/null @@ -1,20 +0,0 @@ -# -# qmake configuration for winrt-x86-msvc2013 -# -# Written for Microsoft Visual C++ 2013 -# - -include(../common/winrt_winphone/qmake.conf) -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP X86 __X86__ __x86__ - -QMAKE_CFLAGS += -FS -QMAKE_CXXFLAGS += -FS -QMAKE_LFLAGS += /SAFESEH /MACHINE:X86 - -QMAKE_LIBS += windowscodecs.lib kernel32.lib ole32.lib - -VCPROJ_ARCH = Win32 -WINSDK_VER = 8.1 -WINTARGET_VER = winv6.3 -WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/8.1/AppxManifest.xml.in -WINRT_MANIFEST.architecture = x86 diff --git a/mkspecs/winrt-x86-msvc2013/qplatformdefs.h b/mkspecs/winrt-x86-msvc2013/qplatformdefs.h deleted file mode 100644 index 2a1aef5e88..0000000000 --- a/mkspecs/winrt-x86-msvc2013/qplatformdefs.h +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/winrt_winphone/qplatformdefs.h" |