diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-07-11 15:14:13 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-07-11 16:42:01 +0200 |
commit | 3ef6cf060e984bca43956a23b61b32ec7347cfc7 (patch) | |
tree | 14810e4d0168c0cc3d69cb286574bf28375c07bc /mkspecs/features | |
parent | b06304e164ba47351fa292662c1e6383c081b5ca (diff) | |
parent | 7b9d6cf844ece18fef884f51117e25ad4ac31db5 (diff) |
Merge branch 'stable' into dev
Conflicts:
qmake/generators/mac/pbuilder_pbx.cpp
src/corelib/json/qjsonwriter.cpp
src/corelib/kernel/qeventdispatcher_blackberry.cpp
src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/ctest_testcase.prf | 97 | ||||
-rw-r--r-- | mkspecs/features/ctest_testcase_common.prf | 97 | ||||
-rw-r--r-- | mkspecs/features/ctest_testcase_installed.prf | 8 | ||||
-rw-r--r-- | mkspecs/features/data/android/dx.bat | 30 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 25 | ||||
-rw-r--r-- | mkspecs/features/java.prf | 8 | ||||
-rw-r--r-- | mkspecs/features/qt_docs.prf | 9 | ||||
-rw-r--r-- | mkspecs/features/qt_functions.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_headersclean.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 12 | ||||
-rw-r--r-- | mkspecs/features/qt_module_pris.prf | 8 | ||||
-rw-r--r-- | mkspecs/features/simd.prf | 40 |
12 files changed, 202 insertions, 138 deletions
diff --git a/mkspecs/features/ctest_testcase.prf b/mkspecs/features/ctest_testcase.prf index 8eb6f3263e..3b7f3091c5 100644 --- a/mkspecs/features/ctest_testcase.prf +++ b/mkspecs/features/ctest_testcase.prf @@ -1,96 +1,9 @@ -win32 { - CMAKE_VERSION = $$system(cmake --version 2>NUL) -} else { - CMAKE_VERSION = $$system(cmake --version 2>/dev/null) -} - - -check.commands = -isEmpty(CMAKE_VERSION) { - message("cmake executable not found. Not running CMake unit tests") -} else { - CTEST_VERSION = $$system(ctest --version) - isEmpty(CTEST_VERSION) { - message("ctest executable not found. Not running CMake unit tests") - } else { - CMAKE_VERSION = $$last(CMAKE_VERSION) - CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0) - CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1) - CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2) - # CMake can report versions like 2.8.11-rc1, so strip off the rc part. - CMAKE_VERSION_PATCH ~= s,-.*,, - - VERSION_OK = - greaterThan(CMAKE_VERSION_MAJOR, 2) { - VERSION_OK = 1 - } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) { - VERSION_OK = 1 - } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) { - VERSION_OK = 1 - } - - isEmpty(VERSION_OK) { - message("cmake $$CMAKE_VERSION is too old for this test.") - } else { - load(cmake_functions) - - CMAKE_BUILD_TYPE = Debug - CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release - win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\" - win32:equals(QT_ARCH, x86_64) { - win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\" - win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\" - } - - BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP) - - for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) { - CMAKE_PREFIX_PATH *= $$dirname(d) - } - CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\" - - !qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True - !qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True - - dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.") - dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST - dependentmodules = $$cmakeModuleList($$dependentmodules) - - contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True - !contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True - - CMAKE_MODULE_VERSIONS = - CMAKE_MODULES_UNDER_TEST = - for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) { - CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST) - 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) - CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME - } - CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;) - - check.commands = \ - $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \ - cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR \ - -DCMAKE_VERBOSE_MAKEFILE=1 \ - $$CMAKE_MODULE_DEFINES \ - $$CMAKE_GL_DEFINES \ - -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \ - -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \ - -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \ - $${CMAKE_MODULE_VERSIONS} \ - -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \ - $(TESTRUNNER) ctest --output-on-failure - - } - } -} +CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_ -insignificant_test:!isEmpty(check.commands) { - check.commands = -$${check.commands} +for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) { + CMAKE_PREFIX_PATH *= $$clean_path($$dirname(d)) } +CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\" -QMAKE_EXTRA_TARGETS *= check +include(ctest_testcase_common.prf) diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf new file mode 100644 index 0000000000..2f66909bb4 --- /dev/null +++ b/mkspecs/features/ctest_testcase_common.prf @@ -0,0 +1,97 @@ + +win32 { + CMAKE_VERSION = $$system(cmake --version 2>NUL) +} else { + CMAKE_VERSION = $$system(cmake --version 2>/dev/null) +} + + +check.commands = +QMAKE_EXTRA_TARGETS *= check + +isEmpty(CMAKE_VERSION) { + message("cmake executable not found. Not running CMake unit tests") + return() +} + +win32 { + CTEST_VERSION = $$system(ctest --version 2>NUL) +} else { + CTEST_VERSION = $$system(ctest --version 2>/dev/null) +} + +isEmpty(CTEST_VERSION) { + message("ctest executable not found. Not running CMake unit tests") + return() +} + +CMAKE_VERSION = $$last(CMAKE_VERSION) +CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0) +CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1) +CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2) +# CMake can report versions like 2.8.11-rc1, so strip off the rc part. +CMAKE_VERSION_PATCH ~= s,-.*,, + +VERSION_OK = +greaterThan(CMAKE_VERSION_MAJOR, 2) { + VERSION_OK = 1 +} else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) { + VERSION_OK = 1 +} else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) { + VERSION_OK = 1 +} + +isEmpty(VERSION_OK) { + message("cmake $$CMAKE_VERSION is too old for this test.") + return() +} + +load(cmake_functions) + +CMAKE_BUILD_TYPE = Debug +CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release +win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\" +win32:equals(QT_ARCH, x86_64) { + win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\" + win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\" +} + +BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP) + +!qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True +!qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True + +dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.") +dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST +dependentmodules = $$cmakeModuleList($$dependentmodules) + +contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True +!contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True + +CMAKE_MODULE_VERSIONS = +CMAKE_MODULES_UNDER_TEST = +for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) { + CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST) + 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) + CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME +} +CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;) + +check.commands = \ + $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \ + cmake $$CMAKE_TEST_LOCATION $$CMAKE_GENERATOR \ + -DCMAKE_VERBOSE_MAKEFILE=1 \ + $$CMAKE_MODULE_DEFINES \ + $$CMAKE_GL_DEFINES \ + -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \ + -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \ + -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \ + $${CMAKE_MODULE_VERSIONS} \ + -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \ + $(TESTRUNNER) ctest --output-on-failure + +insignificant_test:!isEmpty(check.commands): \ + check.commands = -$${check.commands} diff --git a/mkspecs/features/ctest_testcase_installed.prf b/mkspecs/features/ctest_testcase_installed.prf new file mode 100644 index 0000000000..be741b4a0b --- /dev/null +++ b/mkspecs/features/ctest_testcase_installed.prf @@ -0,0 +1,8 @@ + +CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_/../cmake + +CMAKE_PREFIX_PATH = $$[QT_INSTALL_PREFIX] + +CONFIG += insignificant_test + +include(ctest_testcase_common.prf) diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat index c4ad0e3ebc..9816f9607d 100644 --- a/mkspecs/features/data/android/dx.bat +++ b/mkspecs/features/data/android/dx.bat @@ -27,34 +27,35 @@ REM and set up progdir to be the fully-qualified pathname of its directory. set prog=%~f0 if [%1]==[] goto badArgs -set "androidsdk=%1" +set "dx_jar_path=%1" shift /1 if [%1]==[] goto badArgs +REM Use dpZ here to make it more like the Google version. +for %%F in ("%dx_jar_path%") do set dpZ=%%~dpF + rem Check we have a valid Java.exe in the path. set java_exe= -call "%androidsdk%\tools\lib\find_java.bat" +if exist "%dpZ%..\tools\lib\find_java.bat" call "%dpZ%..\tools\lib\find_java.bat" +if exist "%dpZ%..\..\tools\lib\find_java.bat" call "%dpZ%..\..\tools\lib\find_java.bat" + if not defined java_exe goto :EOF set jarfile=dx.jar -set "frameworkdir=%androidsdk%\platform-tools" - -if exist "%frameworkdir%\%jarfile%" goto JarFileOk - set "frameworkdir=%frameworkdir%\lib" +set "frameworkdir=%dpZ%" +rem frameworkdir must not end with a dir sep. +set "frameworkdir=%frameworkdir:~0,-1%" if exist "%frameworkdir%\%jarfile%" goto JarFileOk - set "frameworkdir=%androidsdk%\framework" + set "frameworkdir=%dpZ%lib" if exist "%frameworkdir%\%jarfile%" goto JarFileOk - set "frameworkdir=%androidsdk%\build-tools\%ANDROID_BUILD_TOOLS_REVISION%\lib" - -if exist "%frameworkdir%\%jarfile%" goto JarFileOk - set "frameworkdir=%androidsdk%\build-tools\17.0.0\lib" + set "frameworkdir=%dpZ%..\framework" :JarFileOk -set jarpath=%frameworkdir%\%jarfile% +set "jarpath=%frameworkdir%\%jarfile%" set javaOpts= set args= @@ -97,12 +98,11 @@ set a=%~1 :endArgs set javaOpts=%javaOpts% %defaultXmx% %defaultXss% - call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params% goto :EOF :badArgs -echo Usage: dx (for Qt) <android_sdk_path> <dx_arguments> -echo Example: dx (for Qt) C:\android-sdk --dex --output=target.jar .classes +echo Usage: dx (for Qt) ^<android_sdk_dx_jar_path^> ^<dx_arguments^> +echo Example: dx (for Qt) C:\android-sdk\build-tools\17.0.0\dx.jar --dex --output=target.jar .classes diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 1a2bd4a94d..38623349be 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -78,12 +78,26 @@ endmacro() if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!IF !no_module_headers +!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) + set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\" + ) +!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) + set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\" + ) +!!ELSE + set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) +!!ENDIF +!!ELSE !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE) set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\") !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" ) !!ELSE set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) @@ -92,13 +106,14 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}Qt$${CMAKE_MODULE_NAME}\") !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}\" - \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING}/$${MODULE_INCNAME}\" + \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\" + \"$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" ) !!ELSE set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) !!ENDIF !!ENDIF +!!ENDIF !!ELSE set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS) set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) @@ -135,7 +150,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES}) if (NOT Qt5${_module_dep}_FOUND) find_package(Qt5${_module_dep} - ${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} + $$VERSION ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} ${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED} PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf index 411a839ad8..d8ceb536a7 100644 --- a/mkspecs/features/java.prf +++ b/mkspecs/features/java.prf @@ -58,7 +58,13 @@ QMAKE_EXTENSION_SHLIB = jar # Override linker with dex (for distributable Android archives) or jar (for other java builds) android:!bundled_jar_file { contains(QMAKE_HOST.os, Windows) { - DEX_CMD = $$PWD/data/android/dx $$SDK_ROOT + # The location where dx.bat expects itself to be found is used as the landmark instead + # of the base sdk folder. + # Doing it this way makes this logic more similar to the other platforms and + # also means that our dx.bat is more like Google's dx.bat + DEX_BAT = $$SDK_ROOT/platform-tools/dx.bat + !exists($$DEX_BAT): DEX_BAT = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx.bat + DEX_CMD = $$PWD/data/android/dx $$DEX_BAT } else { DEX_CMD = $$SDK_ROOT/platform-tools/dx !exists($$DEX_CMD): DEX_CMD = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf index a0f765b67f..be3cd5273c 100644 --- a/mkspecs/features/qt_docs.prf +++ b/mkspecs/features/qt_docs.prf @@ -19,11 +19,12 @@ isEmpty(QMAKE_DOCS_TARGETDIR): QMAKE_DOCS_TARGETDIR = $$QMAKE_DOCS_TARGET QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR qtPrepareTool(QDOC, qdoc) -for(qmod, QMAKEMODULES): \ - QDOC += -indexdir $$section(qmod, /, 0, -3)/doc QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR !build_online_docs: \ QDOC += -installdir $$[QT_INSTALL_DOCS] +DOC_INDEXES = +for(qmod, QMAKEMODULES): \ + DOC_INDEXES += -indexdir $$section(qmod, /, 0, -3)/doc qtver.name = QT_VERSION qtver.value = $$VERSION isEmpty(qtver.value): qtver.value = $$MODULE_VERSION @@ -38,9 +39,9 @@ qtAddToolEnv(QDOC, qtver qtmver qtvertag qtdocs) doc_command = $$QDOC $$QMAKE_DOCS prepare_docs { prepare_docs.commands += $$doc_command -prepare -no-link-errors - generate_docs.commands += $$doc_command -generate + generate_docs.commands += $$doc_command -generate $$DOC_INDEXES } else { - html_docs.commands += $$doc_command + html_docs.commands += $$doc_command $$DOC_INDEXES } !build_online_docs { diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index cd74c1d7cf..2f2c94ce06 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -61,6 +61,9 @@ defineTest(qtAddModule) { MODULE_CONFIG = $$eval(QT.$${1}.module_config) MODULE_MAJOR_VERSION = $$eval(QT.$${1}.MAJOR_VERSION) + contains(MODULE_CONFIG, internal_module):!if(auto_use_privates|isEqual(2, UsePrivate)): \ + error("Module $$1 has no public API.") + qtProcessModuleFlags(CONFIG, QT.$${1}.CONFIG) qtProcessModuleFlags(DEFINES, QT.$${1}.DEFINES) diff --git a/mkspecs/features/qt_headersclean.prf b/mkspecs/features/qt_headersclean.prf index 4128392997..ab0a722628 100644 --- a/mkspecs/features/qt_headersclean.prf +++ b/mkspecs/features/qt_headersclean.prf @@ -36,7 +36,8 @@ TARGET = tst_headersclean includes = for(q, QT) { - qn = $$eval(QT.$${q}.name) + sq = $$replace(q, -private\$, ) + qn = $$eval(QT.$${sq}.name) isEmpty(qn): \ QT -= $$q else: \ diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 46f8e56ad5..7f7de85bb6 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -87,19 +87,19 @@ contains(TARGET, QtAddOn.*): \ else: \ DEFINES += QT_BUILD_$${ucmodule}_LIB -#mac frameworks +# OS X and iOS frameworks mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { #QMAKE_FRAMEWORK_VERSION = 4.0 - CONFIG += lib_bundle qt_no_framework_direct_includes qt_framework - CONFIG -= qt_install_headers #no need to install these as well + CONFIG += lib_bundle qt_framework !debug_and_release|if(build_all:CONFIG(release, debug|release)) { FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES FRAMEWORK_HEADERS.path = Headers - FRAMEWORK_PRIVATE_HEADERS.version = Versions FRAMEWORK_PRIVATE_HEADERS.files = $$SYNCQT.PRIVATE_HEADER_FILES - FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME - QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS FRAMEWORK_PRIVATE_HEADERS + FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/private + FRAMEWORK_QPA_HEADERS.files = $$SYNCQT.QPA_HEADER_FILES + FRAMEWORK_QPA_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/qpa + QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS FRAMEWORK_PRIVATE_HEADERS FRAMEWORK_QPA_HEADERS } } diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index 81b37f0e92..90e5288524 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -51,11 +51,15 @@ else: \ else: \ module_rundep = static: \ - module_build_type = "QT.$${MODULE}.module_config = staticlib" + module_build_type = staticlib else:mac:contains(QT_CONFIG, qt_framework): \ - module_build_type = "QT.$${MODULE}.module_config = lib_bundle" + module_build_type = lib_bundle else: \ module_build_type = + internal_module: \ + module_build_type += internal_module + !isEmpty(module_build_type): \ + module_build_type = "QT.$${MODULE}.module_config = $$module_build_type" !isEmpty(MODULE_CONFIG): \ module_config = "QT.$${MODULE}.CONFIG = $$MODULE_CONFIG" else: \ diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf index 751f836a2d..e0cd5a3a58 100644 --- a/mkspecs/features/simd.prf +++ b/mkspecs/features/simd.prf @@ -119,7 +119,6 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH) } neon { HEADERS += $$NEON_HEADERS - SOURCES += $$NEON_ASM neon_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) !contains(QT_CPU_FEATURES, neon):neon_compiler.commands += $$QMAKE_CFLAGS_NEON @@ -130,7 +129,16 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH) neon_compiler.variable_out = OBJECTS neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN} silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands - QMAKE_EXTRA_COMPILERS += neon_compiler + neon_assembler.commands = $$QMAKE_CC -c $(CFLAGS) + !contains(QT_CPU_FEATURES, neon):neon_assembler.commands += $$QMAKE_CFLAGS_NEON + neon_assembler.commands += $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + neon_assembler.dependency_type = TYPE_C + neon_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + neon_assembler.input = NEON_ASM + neon_assembler.variable_out = OBJECTS + neon_assembler.name = assembling[neon] ${QMAKE_FILE_IN} + silent:neon_assembler.commands = @echo assembling[neon] ${QMAKE_FILE_IN} && $$neon_assembler.commands + QMAKE_EXTRA_COMPILERS += neon_compiler neon_assembler } iwmmxt { HEADERS += $$IWMMXT_HEADERS @@ -153,24 +161,32 @@ QT_CPU_FEATURES = $$eval(QT_CPU_FEATURES.$$QT_ARCH) mips_dsp_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} mips_dsp_compiler.dependency_type = TYPE_C mips_dsp_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} - mips_dsp_compiler.input = MIPS_DSP_ASM MIPS_DSP_SOURCES + mips_dsp_compiler.input = MIPS_DSP_SOURCES mips_dsp_compiler.variable_out = OBJECTS mips_dsp_compiler.name = compiling[mips_dsp] ${QMAKE_FILE_IN} silent:mips_dsp_compiler.commands = @echo compiling[mips_dsp] ${QMAKE_FILE_IN} && $$mips_dsp_compiler.commands + mips_dsp_assembler.commands = $$QMAKE_CC -c + mips_dsp_assembler.commands += $(CFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + mips_dsp_assembler.dependency_type = TYPE_C + mips_dsp_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + mips_dsp_assembler.input = MIPS_DSP_ASM + mips_dsp_assembler.variable_out = OBJECTS + mips_dsp_assembler.name = assembling[mips_dsp] ${QMAKE_FILE_IN} + silent:mips_dsp_assembler.commands = @echo assembling[mips_dsp] ${QMAKE_FILE_IN} && $$mips_dsp_assembler.commands QMAKE_EXTRA_COMPILERS += mips_dsp_compiler } mips_dspr2 { HEADERS += $$MIPS_DSP_HEADERS - mips_dspr2_compiler.commands = $$QMAKE_CXX -c - mips_dspr2_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} - mips_dspr2_compiler.dependency_type = TYPE_C - mips_dspr2_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} - mips_dspr2_compiler.input = MIPS_DSPR2_ASM - mips_dspr2_compiler.variable_out = OBJECTS - mips_dspr2_compiler.name = compiling[mips_dspr2] ${QMAKE_FILE_IN} - silent:mips_dspr2_compiler.commands = @echo compiling[mips_dspr2] ${QMAKE_FILE_IN} && $$mips_dspr2_compiler.commands - QMAKE_EXTRA_COMPILERS += mips_dspr2_compiler + mips_dspr2_assembler.commands = $$QMAKE_CC -c + mips_dspr2_assembler.commands += $(CFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + mips_dspr2_assembler.dependency_type = TYPE_C + mips_dspr2_assembler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + mips_dspr2_assembler.input = MIPS_DSPR2_ASM + mips_dspr2_assembler.variable_out = OBJECTS + mips_dspr2_assembler.name = assembling[mips_dspr2] ${QMAKE_FILE_IN} + silent:mips_dspr2_assembler.commands = @echo assembling[mips_dspr2] ${QMAKE_FILE_IN} && $$mips_dspr2_assembler.commands + QMAKE_EXTRA_COMPILERS += mips_dspr2_assembler } } else:win32-msvc* { sse2 { |