diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/features/android/android_deployment_settings.prf | 5 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 34 | ||||
-rw-r--r-- | mkspecs/features/qt_docs.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 10 | ||||
-rw-r--r-- | mkspecs/features/resources_functions.prf | 25 | ||||
-rw-r--r-- | mkspecs/features/testcase.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/wasm/default_pre.prf | 25 | ||||
-rw-r--r-- | mkspecs/features/wasm/wasm.prf | 7 | ||||
-rw-r--r-- | mkspecs/wasm-emscripten/qmake.conf | 2 |
9 files changed, 87 insertions, 27 deletions
diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf index e781eb024c..f375a687a9 100644 --- a/mkspecs/features/android/android_deployment_settings.prf +++ b/mkspecs/features/android/android_deployment_settings.prf @@ -63,11 +63,12 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { QML_ROOT_PATH = $$_PRO_FILE_PWD_ FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH)," FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH)," - !isEmpty(RESOURCES) { + !isEmpty(RESOURCES)|!isEmpty(QMLCACHE_RESOURCE_FILES) { # Make sure that qmake generated qrc files are accounted for load(resources_functions) qtFlattenResources() - for(resource, RESOURCES) { + NEWRESOURCES = $$RESOURCES $$QMLCACHE_RESOURCE_FILES + for(resource, NEWRESOURCES) { contains(resource, ".*\\qmake_qmake_immediate.qrc$") { # They will be created for each architecture, since they could be different # we need to account for all of them diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 364c23e750..5077b8d8b4 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -173,11 +173,20 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI endif() set(_static_link_flags \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\") - if(NOT CMAKE_VERSION VERSION_LESS \"3.13\" AND _static_link_flags) + if(_static_link_flags) set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_OPTIONS - \"${_static_link_flags_genex}\" - ) + if(NOT CMAKE_VERSION VERSION_LESS \"3.13\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_OPTIONS + \"${_static_link_flags_genex}\" + ) + else() + # Abuse INTERFACE_LINK_LIBRARIES to add link flags when CMake version is too low. + # Strip out SHELL:, because it is not supported in this property. And hope for the best. + string(REPLACE \"SHELL:\" \"\" _static_link_flags_genex \"${_static_link_flags_genex}\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + \"${_static_link_flags_genex}\" + ) + endif() endif() !!ENDIF @@ -546,11 +555,20 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) endif() set(_static_link_flags \"${_Qt5${Plugin}_STATIC_${Configuration}_LINK_FLAGS}\") - if(NOT CMAKE_VERSION VERSION_LESS \"3.13\" AND _static_link_flags) + if(_static_link_flags) set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") - set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_OPTIONS - \"${_static_link_flags_genex}\" - ) + if(NOT CMAKE_VERSION VERSION_LESS \"3.13\") + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_OPTIONS + \"${_static_link_flags_genex}\" + ) + else() + # Abuse INTERFACE_LINK_LIBRARIES to add link flags when CMake version is too low. + # Strip out SHELL:, because it is not supported in this property. And hope for the best. + string(REPLACE \"SHELL:\" \"\" _static_link_flags_genex \"${_static_link_flags_genex}\") + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + \"${_static_link_flags_genex}\" + ) + endif() endif() !!ENDIF endmacro() diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf index deb4ac2829..095bf15dac 100644 --- a/mkspecs/features/qt_docs.prf +++ b/mkspecs/features/qt_docs.prf @@ -45,6 +45,8 @@ isEmpty(WIN_INCLUDETEMP) { QDOC_INCLUDE_PATHS=@$$shell_quote($$WIN_INCLUDETEMP) } +macos: QDOC_INCLUDE_PATHS += $$join(QMAKE_DEFAULT_INCDIRS," -I","-I") + !build_online_docs: qtPrepareTool(QHELPGENERATOR, qhelpgenerator) qtPrepareTool(QTATTRIBUTIONSSCANNER, qtattributionsscanner) @@ -93,7 +95,6 @@ qtattributionsscanner.CONFIG += phony QMAKE_EXTRA_TARGETS += qtattributionsscanner doc_command = $$QDOC $$QMAKE_DOCS - prepare_docs { prepare_docs.commands += $$doc_command -prepare $$PREP_DOC_INDEXES -no-link-errors $$QDOC_INCLUDE_PATHS generate_docs.commands += $$doc_command -generate $$DOC_INDEXES $$QDOC_INCLUDE_PATHS diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index ca95768de8..cee0981db0 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -6,16 +6,6 @@ isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc !contains(QMAKE_RESOURCE_FLAGS, -root):!isEmpty(QMAKE_RESOURCE_ROOT):QMAKE_RESOURCE_FLAGS += -root $$QMAKE_RESOURCE_ROOT !contains(QMAKE_RESOURCE_FLAGS, -name): QMAKE_RESOURCE_FLAGS += -name ${QMAKE_FILE_BASE} -# http://www.w3.org/TR/xml/#syntax -defineReplace(xml_escape) { - 1 ~= s,&,&, - 1 ~= s,\',', - 1 ~= s,\",", - 1 ~= s,<,<, - 1 ~= s,>,>, - return($$1) -} - load(resources_functions) qtFlattenResources() diff --git a/mkspecs/features/resources_functions.prf b/mkspecs/features/resources_functions.prf index f7fed9e524..b7a15fd1d9 100644 --- a/mkspecs/features/resources_functions.prf +++ b/mkspecs/features/resources_functions.prf @@ -1,5 +1,21 @@ +# http://www.w3.org/TR/xml/#syntax +defineReplace(xml_escape) { + 1 ~= s,&,&, + 1 ~= s,\',', + 1 ~= s,\",", + 1 ~= s,<,<, + 1 ~= s,>,>, + return($$1) +} + defineTest(qtFlattenResources) { - RESOURCES += qmake_immediate + immediate = qmake_immediate$$QMAKE_RESOURCES_IMMEDIATE_NR + defined(QMAKE_RESOURCES_IMMEDIATE_NR, var): \ + QMAKE_RESOURCES_IMMEDIATE_NR = $$num_add($$QMAKE_RESOURCES_IMMEDIATE_NR, 1) + else: \ + QMAKE_RESOURCES_IMMEDIATE_NR = 1 + + RESOURCES += $$immediate for(resource, RESOURCES) { # Regular case of user qrc file contains(resource, ".*\\.qrc$"): \ @@ -7,10 +23,10 @@ defineTest(qtFlattenResources) { # Fallback for stand-alone files/directories !defined($${resource}.files, var) { - !equals(resource, qmake_immediate) { + !equals(resource, $$immediate) { !exists($$absolute_path($$resource, $$_PRO_FILE_PWD_)): \ warning("Failure to find: $$resource") - qmake_immediate.files += $$resource + $${immediate}.files += $$resource OTHER_FILES *= $$resource } RESOURCES -= $$resource @@ -56,8 +72,9 @@ defineTest(qtFlattenResources) { RESOURCES -= $$resource RESOURCES += $$resource_file } + export(QMAKE_RESOURCES_IMMEDIATE_NR) export(RESOURCES) export(OTHER_FILES) - export(qmake_immediate.files) + export($${immediate}.files) return(true) } diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index d4f08835f1..7e9903d663 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -9,6 +9,9 @@ testcase_exceptions: CONFIG += exceptions # Set in qt_build_config.prf testcase_no_bundle: CONFIG -= app_bundle +# cmdline may have been specified and not processed yet +cmdline: CONFIG -= app_bundle + # Allow testcases to mark themselves as not supporting high-DPI testcase_lowdpi { macos { diff --git a/mkspecs/features/wasm/default_pre.prf b/mkspecs/features/wasm/default_pre.prf new file mode 100644 index 0000000000..982ef0498f --- /dev/null +++ b/mkspecs/features/wasm/default_pre.prf @@ -0,0 +1,25 @@ +load(default_pre) + +defineReplace(qtEmccRecommendedVersion) { + return (1.38.27) +} + +defineReplace(qtSystemEmccVersion) { + E_VERSION = $$system("emcc -v 2>&1 | perl -alne $$shell_quote($_ = $F[9]; s/://; print;) ") + return ($${E_VERSION}) +} + +defineTest(qtConfTest_emccVersion) { + + REQ_VERSION = $$qtEmccRecommendedVersion() + EMCC_VERSION = $$qtSystemEmccVersion() + + !defined(QT_EMCC_VERSION, var):!equals(EMCC_VERSION, $${REQ_VERSION}) { + warning ("You should use the recommended Emscripten version $$REQ_VERSION with this Qt. You have $${EMCC_VERSION} ") + } + contains(TEMPLATE, .*app) { + !equals(QT_EMCC_VERSION, $$EMCC_VERSION) { + warning("This Qt was built with Emscripten version $${QT_EMCC_VERSION}. You have $${EMCC_VERSION}. The difference may cause issues.") + } + } +} diff --git a/mkspecs/features/wasm/wasm.prf b/mkspecs/features/wasm/wasm.prf index 25413d7470..2e886fc4a5 100644 --- a/mkspecs/features/wasm/wasm.prf +++ b/mkspecs/features/wasm/wasm.prf @@ -1,8 +1,11 @@ + # DESTDIR will be empty if not set in the app .pro file; make sure it has a value isEmpty(DESTDIR): DESTDIR = $$OUT_PWD exists($$QMAKE_QT_CONFIG) { +## this may be subject to change + qtConfig(thread) { EMCC_THREAD_LFLAGS += -s USE_PTHREADS=1 @@ -71,7 +74,7 @@ contains(TEMPLATE, .*app) { # replacing the app name placeholder with the actual app name. apphtml.name = application main html file apphtml.output = $$DESTDIR/$$TARGET_HTML - apphtml.commands = sed -e s/@APPNAME@/$$TARGET_BASE/g $$WASM_PLUGIN_PATH/wasm_shell.html > $$DESTDIR/$$TARGET_HTML + apphtml.commands = $$QMAKE_STREAM_EDITOR -e s/@APPNAME@/$$TARGET_BASE/g $$WASM_PLUGIN_PATH/wasm_shell.html > $$DESTDIR/$$TARGET_HTML apphtml.input = $$WASM_PLUGIN_PATH/wasm_shell.html apphtml.depends = $$apphtml.input QMAKE_EXTRA_COMPILERS += apphtml @@ -109,6 +112,8 @@ contains(TEMPLATE, .*app) { } } +qtConfTest_emccVersion() + # Pass --source-map-base on the linker line. This informs the # browser where to find the source files when debugging. WASM_SOURCE_MAP_BASE = http://localhost:8000/ diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index 992803e055..cde6dac42b 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -25,7 +25,7 @@ EMTERP_FLAGS = \ -s ASSERTIONS=1 \ --profiling-funcs -EMCC_COMMON_LFLAGS = \ +EMCC_COMMON_LFLAGS += \ -s WASM=1 \ -s FULL_ES2=1 \ -s USE_WEBGL2=1 \ |