diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/clang.conf | 4 | ||||
-rw-r--r-- | mkspecs/common/gcc-base.conf | 7 | ||||
-rw-r--r-- | mkspecs/common/icc-base-unix.conf | 7 | ||||
-rw-r--r-- | mkspecs/features/android/android.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/coverage.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/create_cmake.prf | 25 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 17 | ||||
-rw-r--r-- | mkspecs/features/metatypes.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_android_deps.prf | 8 | ||||
-rw-r--r-- | mkspecs/features/qt_functions.prf | 19 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 35 | ||||
-rw-r--r-- | mkspecs/features/resources_functions.prf | 61 | ||||
-rw-r--r-- | mkspecs/features/simd.prf | 5 | ||||
-rw-r--r-- | mkspecs/features/yacc.prf | 4 | ||||
-rw-r--r-- | mkspecs/wasm-emscripten/qmake.conf | 30 | ||||
-rw-r--r-- | mkspecs/win32-icc/qmake.conf | 7 |
16 files changed, 147 insertions, 93 deletions
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index aead581478..2499c8b6d8 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -54,3 +54,7 @@ QMAKE_RANLIB_LTCG = true # No need to run, since llvm-ar has "s" QMAKE_CFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard QMAKE_CXXFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard QMAKE_LFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard + +QMAKE_CFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping +QMAKE_CXXFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping +QMAKE_LFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 472333d2ea..1f919d270a 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -105,8 +105,15 @@ QMAKE_CFLAGS_AVX512BW += -mavx512bw QMAKE_CFLAGS_AVX512VL += -mavx512vl QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi +QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni +QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma +QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi +QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2 +QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg +QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd QMAKE_CFLAGS_AESNI += -maes QMAKE_CFLAGS_SHANI += -msha +QMAKE_CFLAGS_VAES += -mvaes QMAKE_CFLAGS_NEON += -mfpu=neon QMAKE_CFLAGS_MIPS_DSP += -mdsp QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2 diff --git a/mkspecs/common/icc-base-unix.conf b/mkspecs/common/icc-base-unix.conf index 5fba8dbfbb..e6cf54eea3 100644 --- a/mkspecs/common/icc-base-unix.conf +++ b/mkspecs/common/icc-base-unix.conf @@ -48,11 +48,18 @@ QMAKE_CFLAGS_AVX512PF += -march=knl QMAKE_CFLAGS_AVX512DQ += -march=skylake-avx512 QMAKE_CFLAGS_AVX512BW += -march=skylake-avx512 QMAKE_CFLAGS_AVX512VL += -march=skylake-avx512 +QMAKE_CFLAGS_AVX512VNNI += -march=cascadelake +QMAKE_CFLAGS_AVX512IFMA += -march=icelake-client # technically, cannonlake +QMAKE_CFLAGS_AVX512VBMI += -march=icelake-client # ditto +QMAKE_CFLAGS_AVX512VBMI2 += -march=icelake-client +QMAKE_CFLAGS_AVX512BITALG += -march=icelake-client +QMAKE_CFLAGS_AVX512POPCNTDQ += -march=icelake-client QMAKE_CFLAGS_AESNI += -maes QMAKE_CFLAGS_F16C += $$QMAKE_CFLAGS_AVX2 QMAKE_CFLAGS_RDRND += -mrdrnd QMAKE_CFLAGS_RDSEED += -mrdseed QMAKE_CFLAGS_SHANI += -msha +QMAKE_CFLAGS_VAES += -mvaes QMAKE_CXX = icpc QMAKE_CXXFLAGS = $$QMAKE_CFLAGS diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf index 8290286ec6..6990417536 100644 --- a/mkspecs/features/android/android.prf +++ b/mkspecs/features/android/android.prf @@ -36,7 +36,7 @@ build_pass { } } } else: contains(TEMPLATE, "lib"):!static:!QTDIR_build:android_install { - tmpvar = $$str_member(TARGET, -$$str_size(QT_ARCH), -1) + tmpvar = $$str_member($$TARGET, -$$str_size($${QT_ARCH}), -1) !equals(tmpvar, $${QT_ARCH}): TARGET = $${TARGET}_$${QT_ARCH} target.path = /libs/$$ANDROID_TARGET_ARCH/ INSTALLS *= target diff --git a/mkspecs/features/coverage.prf b/mkspecs/features/coverage.prf index b8b37e1b80..5ae746f0b7 100644 --- a/mkspecs/features/coverage.prf +++ b/mkspecs/features/coverage.prf @@ -5,3 +5,9 @@ coverage_trace_pc_guard { QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_COVERAGE_TRACE_PC_GUARD QMAKE_LFLAGS += $$QMAKE_LFLAGS_COVERAGE_TRACE_PC_GUARD } + +coverage_source_based { + QMAKE_CFLAGS += $$QMAKE_CFLAGS_COVERAGE_SOURCE_BASED + QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_COVERAGE_SOURCE_BASED + QMAKE_LFLAGS += $$QMAKE_LFLAGS_COVERAGE_SOURCE_BASED +} diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 46b9698e62..24ed125f12 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -212,17 +212,20 @@ contains(CONFIG, plugin) { CMAKE_PLUGIN_TYPE_ESCAPED = $$replace(PLUGIN_TYPE, [-/], _) win32 { + !mingw|qtConfig(debug_and_release): debug_suffix="d" + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.prl - CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}$${debug_suffix}.prl + isEmpty(CMAKE_STATIC_TYPE) { CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.dll - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}$${debug_suffix}.dll } else:mingw { CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.a - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}d.a + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}$${debug_suffix}.a } else { # MSVC static CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.lib - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}$${debug_suffix}.lib } } else { mac { @@ -313,27 +316,29 @@ mac { CMAKE_WINDOWS_BUILD = "true" CMAKE_FIND_OTHER_LIBRARY_BUILD = "true" - CMAKE_LIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.dll + !mingw|qtConfig(debug_and_release): debug_suffix="d" + + CMAKE_LIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}$${debug_suffix}.dll CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.dll !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_STATIC_WINDOWS_BUILD = "true" - CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}$${debug_suffix}.prl CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl } mingw { - CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}d.a + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}$${debug_suffix}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqtmain$${QT_LIBINFIX}.a - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}$${debug_suffix}.a CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a } else { - CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}$${debug_suffix}.lib CMAKE_WINMAIN_FILE_LOCATION_RELEASE = qtmain$${QT_LIBINFIX}.lib - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib + CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}$${debug_suffix}.lib CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib } } else { diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 01dda9b0c3..4c3086a1f6 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -72,6 +72,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura string(REGEX REPLACE \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends \"${_prl_strings}\") string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries \"${CMAKE_CXX_STANDARD_LIBRARIES}\") set(_search_paths) + set(_fw_search_paths) set(_framework_flag) string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\") foreach(_flag ${_static_depends}) @@ -79,10 +80,13 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura if(_flag MATCHES \"^-framework$\") # Handle the next flag as framework name set(_framework_flag 1) + elseif(_flag MATCHES \"^-F(.*)$\") + # Handle -F/foo/bar flags by recording the framework search paths to be used + # by find_library. + list(APPEND _fw_search_paths \"${CMAKE_MATCH_1}\") elseif(_framework_flag OR _flag MATCHES \"^-l(.*)$\") if(_framework_flag) # Handle Darwin framework bundles passed as -framework Foo - unset(_framework_flag) set(_lib ${_flag}) else() # Handle normal libraries passed as -lfoo @@ -100,10 +104,14 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura find_package(Threads REQUIRED) list(APPEND _lib_deps Threads::Threads) else() - if(_search_paths) - find_library(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH ${_lib} HINTS ${_search_paths} NO_DEFAULT_PATH) + set(current_search_paths \"${_search_paths}\") + if(_framework_flag) + set(current_search_paths \"${_fw_search_paths}\") + endif() + if(current_search_paths) + find_library(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH ${_lib} HINTS ${current_search_paths} NO_DEFAULT_PATH) endif() - find_library(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH ${_lib}) + find_library(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH ${_lib} HINTS ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}) mark_as_advanced(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH) if(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH) list(APPEND _lib_deps @@ -112,6 +120,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura else() message(FATAL_ERROR \"Library not found: ${_lib}\") endif() + unset(_framework_flag) endif() elseif(EXISTS \"${_flag}\") # The flag is an absolute path to an existing library diff --git a/mkspecs/features/metatypes.prf b/mkspecs/features/metatypes.prf index 59ef914f63..555269fa68 100644 --- a/mkspecs/features/metatypes.prf +++ b/mkspecs/features/metatypes.prf @@ -1,7 +1,5 @@ qtPrepareTool(MOC_COLLECT_JSON, moc) -load(qt_build_paths) - QMAKE_MOC_OPTIONS += --output-json MOC_JSON_H_BASE = $${QMAKE_H_MOD_MOC} @@ -39,6 +37,7 @@ install_metatypes { do_install_metatypes.path = $$[QT_INSTALL_LIBS]/metatypes do_install_metatypes.files = $$OUT_PWD/$$MOC_COLLECT_JSON_OUTPUT prefix_build { + load(qt_build_paths) !isEmpty(MODULE_BASE_OUTDIR) { metatypes_to_builddir.files = $$do_install_metatypes.files metatypes_to_builddir.path = $$MODULE_BASE_OUTDIR/lib/metatypes diff --git a/mkspecs/features/qt_android_deps.prf b/mkspecs/features/qt_android_deps.prf index e50c24b966..354e40ed23 100644 --- a/mkspecs/features/qt_android_deps.prf +++ b/mkspecs/features/qt_android_deps.prf @@ -46,8 +46,8 @@ build_pass:!isEmpty(QT_ARCH): { EXTENDS = $$section(LIB_FILE, ":", 1, 1) !isEmpty(EXTENDS): EXTENDS = "extends=\"$$EXTENDS\"" LIB_FILE = $$section(LIB_FILE, ":", 0, 0) - LIB_FILE = $$replace(LIB_FILE,".so", "_$${QT_ARCH}.so") - !isEmpty(EXTENDS): EXTENDS = $$replace(EXTENDS,".so", "_$${QT_ARCH}.so") + LIB_FILE = $$replace(LIB_FILE,"\.so", "_$${QT_ARCH}.so") + !isEmpty(EXTENDS): EXTENDS = $$replace(EXTENDS,"\.so", "_$${QT_ARCH}.so") FILE_CONTENT += "<lib file=\"$$LIB_FILE\" $$EXTENDS />" } } @@ -56,14 +56,14 @@ build_pass:!isEmpty(QT_ARCH): { for(REPLACEMENT, ANDROID_LIB_DEPENDENCY_REPLACEMENTS) { REPLACEMENT_FILE = $$section(REPLACEMENT, ":", 0, 0) LIB_FILE = $$section(REPLACEMENT, ":", 1, 1) - REPLACEMENT_FILE = $$replace(REPLACEMENT_FILE,".so", "_$${QT_ARCH}.so") + REPLACEMENT_FILE = $$replace(REPLACEMENT_FILE,"\.so", "_$${QT_ARCH}.so") FILE_CONTENT += "<lib file=\"$$LIB_FILE\" replaces=\"$$REPLACEMENT_FILE\" />" } } !isEmpty(ANDROID_BUNDLED_FILES) { for (BUNDLED_FILE, ANDROID_BUNDLED_FILES) { - BUNDLED_FILE = $$replace(BUNDLED_FILE,".so", "_$${QT_ARCH}.so") + BUNDLED_FILE = $$replace(BUNDLED_FILE,"\.so", "_$${QT_ARCH}.so") FILE_CONTENT += "<bundled file=\"$$BUNDLED_FILE\" />" } } diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 45d4492788..7777e615bd 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -2,10 +2,21 @@ defineReplace(qtPlatformTargetSuffix) { suffix = android: return($${suffix}_$${QT_ARCH}) - else: CONFIG(debug, debug|release) { - !debug_and_release|build_pass { - mac: return($${suffix}_debug) - win32: return($${suffix}d) + win32 { + CONFIG(debug, debug|release) { + mingw { + qtConfig(debug_and_release):build_pass: \ + return($${suffix}d) + } else { + !debug_and_release|build_pass: \ + return($${suffix}d) + } + } + } + darwin { + CONFIG(debug, debug|release) { + !debug_and_release|build_pass: \ + return($${suffix}_debug) } } return($$suffix) diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index cee0981db0..151051163d 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -1,6 +1,5 @@ qtPrepareTool(QMAKE_RCC, rcc, _DEP) -isEmpty(RCC_DIR):RCC_DIR = . isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc !contains(QMAKE_RESOURCE_FLAGS, -root):!isEmpty(QMAKE_RESOURCE_ROOT):QMAKE_RESOURCE_FLAGS += -root $$QMAKE_RESOURCE_ROOT @@ -8,39 +7,7 @@ isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc load(resources_functions) qtFlattenResources() - -!isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static { - pluginBaseName = $$basename(TARGET) - pluginName = $$lower($$replace(pluginBaseName, [-], _)) - resource_init_function = $${pluginName}_plugin_resource_init - DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function" - RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp - - GENERATED_SOURCES += $$RESOURCE_INIT_CPP - QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP - - isEmpty(BUILDS)|build_pass { - RESOURCE_INIT_CONT = \ - "// This file is autogenerated by qmake. It contains a function that" \ - "// references all resources the plugin includes and the function is" \ - "// referenced by Qt_(MOC_)EXPORT_PLUGIN to ensure the inclusion in" \ - "// the statically linked plugin." \ - "$${LITERAL_HASH}include <QtCore/qglobal.h>" \ - "void $${resource_init_function}() " \ - "{" \ - - for (resource, RESOURCES) { - resource_name = $$section($$list($$basename(resource)), ., 0, 0) - resource_name = $$replace(resource_name, [^a-zA-Z0-9_], _) - RESOURCE_INIT_CONT += " Q_INIT_RESOURCE($$resource_name);" - } - - RESOURCE_INIT_CONT += \ - "}" - - write_file($$RESOURCE_INIT_CPP, RESOURCE_INIT_CONT)|error() - } -} +qtEnsurePluginResourcesCpp() rcc.input = RESOURCES rcc.name = RCC ${QMAKE_FILE_IN} diff --git a/mkspecs/features/resources_functions.prf b/mkspecs/features/resources_functions.prf index b7a15fd1d9..fe2dc17d4d 100644 --- a/mkspecs/features/resources_functions.prf +++ b/mkspecs/features/resources_functions.prf @@ -9,6 +9,7 @@ defineReplace(xml_escape) { } defineTest(qtFlattenResources) { + isEmpty(RCC_DIR):RCC_DIR = . immediate = qmake_immediate$$QMAKE_RESOURCES_IMMEDIATE_NR defined(QMAKE_RESOURCES_IMMEDIATE_NR, var): \ QMAKE_RESOURCES_IMMEDIATE_NR = $$num_add($$QMAKE_RESOURCES_IMMEDIATE_NR, 1) @@ -33,7 +34,18 @@ defineTest(qtFlattenResources) { next() } - resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD) + RESOURCES -= $$resource + !android|isEmpty(BUILDS)|build_pass { + resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD) + RESOURCES += $$resource_file + } else { + # Android will need a resource file for each architecture make sure it is placed + # correctly for other functions that need the right paths for these files + for (arch, ANDROID_ABIS) { + resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD/$$arch) + RESOURCES += $$resource_file + } + } isEmpty(BUILDS)|build_pass { # Collection of files, generate qrc file @@ -68,13 +80,54 @@ defineTest(qtFlattenResources) { !write_file($$resource_file, resource_file_content): \ error() } - - RESOURCES -= $$resource - RESOURCES += $$resource_file } + export(RCC_DIR) export(QMAKE_RESOURCES_IMMEDIATE_NR) export(RESOURCES) export(OTHER_FILES) export($${immediate}.files) return(true) } + +defineTest(qtEnsurePluginResourcesCpp) { + contains(DEFINES, QT_PLUGIN_RESOURCE_INIT_FUNCTION=.*): \ + return(true) + + !isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static { + pluginBaseName = $$basename(TARGET) + pluginName = $$lower($$replace(pluginBaseName, [-], _)) + resource_init_function = $${pluginName}_plugin_resource_init + DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function" + RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp + + GENERATED_SOURCES += $$RESOURCE_INIT_CPP + QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP + + isEmpty(BUILDS)|build_pass { + RESOURCE_INIT_CONT = \ + "// This file is autogenerated by qmake. It contains a function that" \ + "// references all resources the plugin includes and the function is" \ + "// referenced by Qt_(MOC_)EXPORT_PLUGIN to ensure the inclusion in" \ + "// the statically linked plugin." \ + "$${LITERAL_HASH}include <QtCore/qglobal.h>" \ + "void $${resource_init_function}() " \ + "{" \ + + for (resource, RESOURCES) { + resource_name = $$replace($$list($$basename(resource)),\.qrc$, ) + resource_name = $$replace(resource_name, [^a-zA-Z0-9_], _) + RESOURCE_INIT_CONT += " Q_INIT_RESOURCE($$resource_name);" + } + + RESOURCE_INIT_CONT += \ + "}" + + write_file($$RESOURCE_INIT_CPP, RESOURCE_INIT_CONT)|error() + } + + export(DEFINES) + export(GENERATED_SOURCES) + export(QMAKE_DISTCLEAN) + } + return(true) +} diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf index 3918c4fe73..8e041297d2 100644 --- a/mkspecs/features/simd.prf +++ b/mkspecs/features/simd.prf @@ -124,6 +124,7 @@ addSimdCompiler(sse4_1) addSimdCompiler(sse4_2) addSimdCompiler(aesni) addSimdCompiler(shani) +addSimdCompiler(vaes) addSimdCompiler(avx) addSimdCompiler(avx2) addSimdCompiler(avx512f) @@ -133,8 +134,12 @@ addSimdCompiler(avx512pf) addSimdCompiler(avx512dq) addSimdCompiler(avx512bw) addSimdCompiler(avx512vl) +addSimdCompiler(avx512vnni) addSimdCompiler(avx512ifma) addSimdCompiler(avx512vbmi) +addSimdCompiler(avx512vbmi2) +addSimdCompiler(avx512bitalg) +addSimdCompiler(avx512vpopcntd) addSimdCompiler(f16c) addSimdCompiler(rdrnd) addSimdCompiler(rdseed) diff --git a/mkspecs/features/yacc.prf b/mkspecs/features/yacc.prf index 0c7ff7321e..8acb9bc4bd 100644 --- a/mkspecs/features/yacc.prf +++ b/mkspecs/features/yacc.prf @@ -30,8 +30,8 @@ defineReplace(yaccCommands) { commands = \ -$(DEL_FILE) $${hpp_output} $${cpp_output}$$escape_expand(\\n\\t) \ $${yacc_call}$$escape_expand(\\n\\t) \ - $(MOVE) $${YACC_DIR}/$${QMAKE_YACC_HEADER} $${hpp_output}$$escape_expand(\\n\\t) \ - $(MOVE) $${YACC_DIR}/$${QMAKE_YACC_SOURCE} $${cpp_output}$$escape_expand(\\n\\t) + $(MOVE) $$shell_path($${YACC_DIR}/$${QMAKE_YACC_HEADER}) $${hpp_output}$$escape_expand(\\n\\t) \ + $(MOVE) $$shell_path($${YACC_DIR}/$${QMAKE_YACC_SOURCE}) $${cpp_output}$$escape_expand(\\n\\t) silent: commands = @echo Yacc $$1 && $$commands return($$commands) diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index 8773e1bd00..e6a9773482 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -51,34 +51,8 @@ EMCC_COMMON_LFLAGS_DEBUG = \ # -s SOCKET_DEBUG \ #print out socket,network data transfer -s GL_DEBUG=1 -# Set up debug/optimization flags -QMAKE_CXXFLAGS_RELEASE -= -O2 -QMAKE_CFLAGS_RELEASE -= -O2 -equals(WASM_OBJECT_FILES, 1) { - QMAKE_LFLAGS_DEBUG += -g - - QMAKE_CXXFLAGS_RELEASE += -O3 - QMAKE_CFLAGS_RELEASE += -O3 - QMAKE_LFLAGS_RELEASE += -O3 - QMAKE_CFLAGS_OPTIMIZE += -O3 - QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz -} else { - # Practical debugging setup: - # "-g4" preserves function names for stack traces - # "-Os" produces reasonably sized binaries - QMAKE_CFLAGS_DEBUG -= -g - QMAKE_CXXFLAGS_DEBUG -= -g - QMAKE_CFLAGS_DEBUG += -Os -g4 - QMAKE_CXXFLAGS_DEBUG += -Os -g4 - QMAKE_LFLAGS_DEBUG += -Os -g4 - - QMAKE_CXXFLAGS_RELEASE += -O3 - QMAKE_CFLAGS_RELEASE += -O3 - QMAKE_LFLAGS_RELEASE += -O3 - QMAKE_CFLAGS_OPTIMIZE += -O3 - QMAKE_CFLAGS_OPTIMIZE_FULL += -Oz -} - +QMAKE_LFLAGS_DEBUG += -g +QMAKE_LFLAGS_RELEASE += -O2 QMAKE_COMPILER += emscripten diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index af26c5bc15..65d1aa1c7e 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -38,6 +38,12 @@ QMAKE_CFLAGS_AVX512PF += -QxMIC-AVX512 QMAKE_CFLAGS_AVX512DQ += -QxCORE-AVX512 QMAKE_CFLAGS_AVX512BW += -QxCORE-AVX512 QMAKE_CFLAGS_AVX512VL += -QxCORE-AVX512 +QMAKE_CFLAGS_AVX512VNNI += -QxCASCADELAKE +QMAKE_CFLAGS_AVX512IFMA += -QxICELAKE-CLIENT # technically, cannonlake +QMAKE_CFLAGS_AVX512VBMI += -QxICELAKE-CLIENT # ditto +QMAKE_CFLAGS_AVX512VBMI2 += QxICELAKE-CLIENT +QMAKE_CFLAGS_AVX512BITALG += QxICELAKE-CLIENT +QMAKE_CFLAGS_AVX512POPCNTDQ += QxICELAKE-CLIENT QMAKE_CFLAGS_F16C = $$QMAKE_CFLAGS_AVX2 QMAKE_CFLAGS_RDRND = $$QMAKE_CFLAGS_AVX2 # ICC on Windows lacks the mrdseed compiler option that sets the RDSEED macro @@ -46,6 +52,7 @@ QMAKE_CFLAGS_ARCH_HASWELL = $$QMAKE_CFLAGS_AVX2 QMAKE_CFLAGS_AESNI = -QxSSE2 QMAKE_CFLAGS_SHANI = -QxSSE4.2 +QMAKE_CFLAGS_VAES = -QxCORE-AVX512 QMAKE_CXX = $$QMAKE_CC QMAKE_CXXFLAGS += -Qprec -Zm200 -Zc:forScope |