diff options
Diffstat (limited to 'mkspecs/features/data')
-rw-r--r-- | mkspecs/features/data/cmake/ExtraSourceIncludes.cmake.in | 7 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 605 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in | 11 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in | 2 | ||||
-rw-r--r-- | mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in | 102 | ||||
-rw-r--r-- | mkspecs/features/data/dumpvcvars.bat | 27 | ||||
-rwxr-xr-x | mkspecs/features/data/mac/objc_namespace.sh | 141 | ||||
-rw-r--r-- | mkspecs/features/data/unix/findclasslist.pl | 64 |
8 files changed, 74 insertions, 885 deletions
diff --git a/mkspecs/features/data/cmake/ExtraSourceIncludes.cmake.in b/mkspecs/features/data/cmake/ExtraSourceIncludes.cmake.in deleted file mode 100644 index ec8075f3f7..0000000000 --- a/mkspecs/features/data/cmake/ExtraSourceIncludes.cmake.in +++ /dev/null @@ -1,7 +0,0 @@ - -list(APPEND _Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS - $$CMAKE_SOURCE_INCLUDES -) -set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - $$CMAKE_SOURCE_PRIVATE_INCLUDES -) diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in deleted file mode 100644 index 26d4c17e6c..0000000000 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ /dev/null @@ -1,605 +0,0 @@ - -if (CMAKE_VERSION VERSION_LESS 3.1.0) - message(FATAL_ERROR \"Qt 5 $${CMAKE_MODULE_NAME} module requires at least CMake version 3.1.0\") -endif() - -!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND) -!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") -!!ELSE -get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH) -# Use original install prefix when loaded through a -# cross-prefix symbolic link such as /lib -> /usr/lib. -get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH) -get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH) -if(_realCurr STREQUAL _realOrig) - get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE) -else() - get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) -endif() -unset(_realOrig) -unset(_realCurr) -unset(_IMPORT_PREFIX) -!!ENDIF -!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) -!!ELSE -set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") -!!ENDIF - -!!IF !equals(TEMPLATE, aux) -# For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead. -set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.VERSION)") - -set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME}) -!!ENDIF // TEMPLATE != aux - -macro(_qt5_$${CMAKE_MODULE_NAME}_check_file_exists file) - if(NOT EXISTS \"${file}\" ) - message(FATAL_ERROR \"The imported target \\\"Qt5::$${CMAKE_MODULE_NAME}\\\" references the file - \\\"${file}\\\" -but this file does not exist. Possible reasons include: -* The file was deleted, renamed, or moved to another location. -* An install or uninstall procedure did not complete successfully. -* The installation package was faulty and contained - \\\"${CMAKE_CURRENT_LIST_FILE}\\\" -but not all the files it references. -\") - endif() -endmacro() - -!!IF !isEmpty(CMAKE_STATIC_TYPE) -function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configuration lib_deps link_flags) - set(_lib_deps) - set(_link_flags) - -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\") -!!ELSE - set(_qt5_install_libs \"$${CMAKE_LIB_DIR}\") -!!ENDIF - - if(EXISTS \"${prl_file_location}\") - file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=\") - - # file(STRINGS) replaces all semicolons read from the file with backslash semicolons. - # We need to do a reverse transformation in CMake. For that we replace all backslash - # semicolons with just semicolons, but due to the qmake substitution feature - # creating this file, we need to double the amount of backslashes, so the final file - # should have three backslashes and one semicolon. - string(REGEX REPLACE \"\\\\\\;\" \";\" _prl_strings \"${_prl_strings}\") - - 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(_framework_flag) - string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\") - foreach(_flag ${_static_depends}) - string(REPLACE \"\\\"\" \"\" _flag ${_flag}) - if(_flag MATCHES \"^-framework$\") - # Handle the next flag as framework name - set(_framework_flag 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 - set(_lib \"${CMAKE_MATCH_1}\") - foreach(_standard_library ${_standard_libraries}) - if(_standard_library MATCHES \"^${_lib}(\\\\.lib)?$\") - set(_lib_is_default_linked TRUE) - break() - endif() - endforeach() - endif() - if (_lib_is_default_linked) - unset(_lib_is_default_linked) - elseif(_lib MATCHES \"^pthread$\") - 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) - endif() - find_library(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH ${_lib}) - mark_as_advanced(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH) - if(_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH) - list(APPEND _lib_deps - ${_Qt5$${CMAKE_MODULE_NAME}_${Configuration}_${_lib}_PATH} - ) - else() - message(FATAL_ERROR \"Library not found: ${_lib}\") - endif() - endif() - elseif(EXISTS \"${_flag}\") - # The flag is an absolute path to an existing library - list(APPEND _lib_deps \"${_flag}\") - elseif(_flag MATCHES \"^-L(.*)$\") - # Handle -Lfoo flags by putting their paths in the search path used by find_library above - list(APPEND _search_paths \"${CMAKE_MATCH_1}\") - else() - # Handle all remaining flags by simply passing them to the linker - list(APPEND _link_flags ${_flag}) - endif() - endforeach() - endif() - - string(REPLACE \";\" \" \" _link_flags \"${_link_flags}\") - set(${lib_deps} ${_lib_deps} PARENT_SCOPE) - set(${link_flags} \"SHELL:${_link_flags}\" PARENT_SCOPE) -endfunction() -!!ENDIF - -!!IF !equals(TEMPLATE, aux) -macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION - IsDebugAndRelease) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) - -!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") -!!ELSE - set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") -!!ENDIF - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) - set(_deps - ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES} - ) - set(_static_deps -!!IF !isEmpty(CMAKE_STATIC_TYPE) - ${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LIB_DEPENDENCIES} -!!ENDIF - ) - - set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} -!!IF !isEmpty(CMAKE_LIB_SONAME) - \"IMPORTED_SONAME_${Configuration}\" \"$${CMAKE_LIB_SONAME}\" -!!ENDIF - # For backward compatibility with CMake < 2.8.12 - \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_deps};${_static_deps}\" - ) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES - \"${_deps}\" - ) - -!!IF !isEmpty(CMAKE_STATIC_TYPE) - if(NOT "${IsDebugAndRelease}") - set(_genex_condition \"1\") - else() - if("${Configuration}" STREQUAL "DEBUG") - set(_genex_condition \"$<CONFIG:Debug>\") - else() - set(_genex_condition \"$<NOT:$<CONFIG:Debug>>\") - endif() - endif() - - if(_static_deps) - set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES - \"${_static_deps_genex}\" - ) - endif() - - set(_static_link_flags \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\") - if(_static_link_flags) - set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") - 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 - -!!IF !isEmpty(CMAKE_WINDOWS_BUILD) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") -!!ELSE - set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") -!!ENDIF - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib}) - if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\") - set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib} - ) - endif() -!!ENDIF -endmacro() -!!ENDIF - -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}$${CMAKE_QT_STEM}.framework\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.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}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.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}/$$VERSION\" - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\" - ) -!!ELSE - set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -!!ENDIF -!!ELSE - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR\" \"$${CMAKE_INCLUDE_DIR}$${CMAKE_INCLUDE_NAME}\") -!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES) - set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS - \"$${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 -!!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS) - include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL) -!!ENDIF -!!ELSE - set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"\") - set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\") -!!ENDIF - - foreach(_dir ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) - endforeach() - -!!IF isEmpty(CMAKE_BUILD_IS_FRAMEWORK) - # Only check existence of private includes if the Private component is - # specified. - list(FIND Qt5$${CMAKE_MODULE_NAME}_FIND_COMPONENTS Private _check_private) - if (NOT _check_private STREQUAL -1) - foreach(_dir ${Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS}) - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${_dir}) - endforeach() - endif() -!!ENDIF - -!!IF !equals(TEMPLATE, aux) - set(Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) - - set(Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS -D$${MODULE_DEFINE}) - set(Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS $${MODULE_DEFINES}) -!!ENDIF // TEMPLATE != aux - set(_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_MODULE_DEPS}\") - -!!IF !isEmpty(CMAKE_INTERFACE_MODULE_DEPS) - list(APPEND _Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_INTERFACE_MODULE_DEPS}\") -!!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) - endif() - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_QUIET) - if (Qt5$${CMAKE_MODULE_NAME}_FIND_QUIETLY) - set(_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET QUIET) - endif() - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) - if (Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT) - set(_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT EXACT) - endif() - -!!IF !equals(TEMPLATE, aux) - set(Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS \"\") -!!ENDIF // TEMPLATE != aux - - foreach(_module_dep ${_Qt5$${CMAKE_MODULE_NAME}_MODULE_DEPENDENCIES}) - if (NOT Qt5${_module_dep}_FOUND) - find_package(Qt5${_module_dep} - $$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 - ) - endif() - - if (NOT Qt5${_module_dep}_FOUND) - set(Qt5$${CMAKE_MODULE_NAME}_FOUND False) - return() - endif() - -!!IF !equals(TEMPLATE, aux) - list(APPEND Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS \"${Qt5${_module_dep}_INCLUDE_DIRS}\") - list(APPEND Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}\") - list(APPEND Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS}) - list(APPEND Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS}) - list(APPEND Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS}) -!!ENDIF // TEMPLATE != aux - endforeach() -!!IF !equals(TEMPLATE, aux) - list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_INCLUDE_DIRS) - list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS) - list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_DEFINITIONS) - list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_COMPILE_DEFINITIONS) - list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) -!!ENDIF // TEMPLATE != aux - - # It can happen that the same FooConfig.cmake file is included when calling find_package() - # on some Qt component. An example of that is when using a Qt static build with auto inclusion - # of plugins: - # - # Qt5WidgetsConfig.cmake -> Qt5GuiConfig.cmake -> Qt5Gui_QSvgIconPlugin.cmake -> - # Qt5SvgConfig.cmake -> Qt5WidgetsConfig.cmake -> - # finish processing of second Qt5WidgetsConfig.cmake -> - # return to first Qt5WidgetsConfig.cmake -> - # add_library cannot create imported target "Qt5::Widgets". - # - # Make sure to return early in the original Config inclusion, because the target has already - # been defined as part of the second inclusion. - if(TARGET Qt5::$${CMAKE_MODULE_NAME}) - return() - endif() - - set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS}\") - -!!IF !isEmpty(CMAKE_INTERFACE_QT5_MODULE_DEPS) - list(APPEND _Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_INTERFACE_QT5_MODULE_DEPS}\") -!!ENDIF - -!!IF !isEmpty(CMAKE_STATIC_TYPE) - if(NOT Qt5_EXCLUDE_STATIC_DEPENDENCIES) -!!IF !isEmpty(CMAKE_DEBUG_TYPE) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG - _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES - _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LINK_FLAGS - ) -!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG - _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES - _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LINK_FLAGS - ) -!!ENDIF -!!ENDIF - -!!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE - _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES - _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LINK_FLAGS - ) -!!ELSE - _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE - _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES - _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LINK_FLAGS - ) -!!ENDIF -!!ENDIF - endif() - - add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") -!!ELSE -!!IF equals(TEMPLATE, aux) - add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) -!!ELSE - add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) -!!ENDIF -!!ENDIF -!!IF !equals(TEMPLATE, aux) -!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -!!ENDIF -!!ENDIF // TEMPLATE != aux - - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINES}) - - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_ENABLED_FEATURES $$join(QT.$${MODULE}.enabled_features, ";")) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_DISABLED_FEATURES $$join(QT.$${MODULE}.disabled_features, ";")) - - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_PLUGIN_TYPES \"$${CMAKE_MODULE_PLUGIN_TYPES}\") - - 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) - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ELSE - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD - -!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) -!!IF isEmpty(CMAKE_DEBUG_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) -!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE - if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) -!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE - _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ELSE // CMAKE_STATIC_WINDOWS_BUILD - if (EXISTS -!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" -!!ELSE - \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" -!!ENDIF - AND EXISTS -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) -!!ELSE - \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) -!!ENDIF - _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD - endif() -!!ENDIF // CMAKE_DEBUG_TYPE -!!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD - -!!ENDIF // CMAKE_RELEASE_TYPE - -!!IF !isEmpty(CMAKE_DEBUG_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) - _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ELSE - _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD - -!!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD) -!!IF isEmpty(CMAKE_RELEASE_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE - if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ELSE // CMAKE_STATIC_WINDOWS_BUILD - if (EXISTS -!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" -!!ELSE - \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" -!!ENDIF - AND EXISTS -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -!!ELSE - \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) -!!ENDIF - _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD - endif() -!!ENDIF // CMAKE_RELEASE_TYPE -!!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD - -!!ENDIF // CMAKE_DEBUG_TYPE -!!ELSE // TEMPLATE != aux - set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - INTERFACE_LINK_LIBRARIES \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" - ) -!!ENDIF // TEMPLATE != aux - -!!IF isEmpty(CMAKE_INTERNAL_MODULE) - - file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") - - macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION - IsDebugAndRelease) - set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) - -!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") -!!ELSE - set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") -!!ENDIF - _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location}) - set_target_properties(Qt5::${Plugin} PROPERTIES - \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} - ) - -!!IF !isEmpty(CMAKE_STATIC_TYPE) - set(_static_deps - ${_Qt5${Plugin}_STATIC_${Configuration}_LIB_DEPENDENCIES} - ) - - if(NOT "${IsDebugAndRelease}") - set(_genex_condition \"1\") - else() - if("${Configuration}" STREQUAL "DEBUG") - set(_genex_condition \"$<CONFIG:Debug>\") - else() - set(_genex_condition \"$<NOT:$<CONFIG:Debug>>\") - endif() - endif() - if(_static_deps) - set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") - set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_LIBRARIES - \"${_static_deps_genex}\" - ) - endif() - - set(_static_link_flags \"${_Qt5${Plugin}_STATIC_${Configuration}_LINK_FLAGS}\") - if(_static_link_flags) - set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") - 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() - - if (pluginTargets) - foreach(pluginTarget ${pluginTargets}) - include(${pluginTarget}) - endforeach() - endif() - -!!ENDIF // isEmpty(CMAKE_INTERNAL_MODULE) - - -!!IF !isEmpty(CMAKE_MODULE_EXTRAS) - include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") -!!ENDIF - -!!IF !isEmpty(CMAKE_MODULE_MACROS) - include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake\") -!!ENDIF - -_qt5_$${CMAKE_MODULE_NAME}_check_file_exists(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake\") - -endif() diff --git a/mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in b/mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in deleted file mode 100644 index 7c42430e97..0000000000 --- a/mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ - -set(PACKAGE_VERSION $$CMAKE_PACKAGE_VERSION) - -if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() diff --git a/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in b/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in deleted file mode 100644 index 6e27f7a260..0000000000 --- a/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in +++ /dev/null @@ -1,2 +0,0 @@ -#include <QtPlugin> -Q_IMPORT_PLUGIN($$CMAKE_PLUGIN_NAME) diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in deleted file mode 100644 index 7b70cfed09..0000000000 --- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in +++ /dev/null @@ -1,102 +0,0 @@ - -add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) - -!!IF !isEmpty(CMAKE_STATIC_TYPE) -set(_Qt5$${CMAKE_PLUGIN_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_PLUGIN_MODULE_DEPS}\") - -foreach(_module_dep ${_Qt5$${CMAKE_PLUGIN_NAME}_MODULE_DEPENDENCIES}) - if(NOT Qt5${_module_dep}_FOUND) - find_package(Qt5${_module_dep} - $$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 - ) - endif() -endforeach() - -!!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS -) -!!ELSE -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS -) -!!ENDIF -!!ENDIF - -!!IF !isEmpty(CMAKE_DEBUG_TYPE) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS -) -!!ELSE -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS -) -!!ENDIF -!!ENDIF - -set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES - \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_$${CMAKE_PLUGIN_NAME}_Import.cpp\" -) -!!ENDIF - -!!IF !isEmpty(CMAKE_RELEASE_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF -!!IF !isEmpty(CMAKE_DEBUG_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF - -list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) -set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY QT_ALL_PLUGINS_$${CMAKE_PLUGIN_TYPE_ESCAPED} Qt5::$${CMAKE_PLUGIN_NAME}) -!!IF !isEmpty(CMAKE_STATIC_TYPE) -# $<GENEX_EVAL:...> wasn\'t added until CMake 3.12, so put a version guard around it -if(CMAKE_VERSION VERSION_LESS \"3.12\") - set(_manual_plugins_genex \"$<TARGET_PROPERTY:QT_PLUGINS>\") - set(_plugin_type_genex \"$<TARGET_PROPERTY:QT_PLUGINS_$${CMAKE_PLUGIN_TYPE_ESCAPED}>\") - set(_no_plugins_genex \"$<TARGET_PROPERTY:QT_NO_PLUGINS>\") -else() - set(_manual_plugins_genex \"$<GENEX_EVAL:$<TARGET_PROPERTY:QT_PLUGINS>>\") - set(_plugin_type_genex \"$<GENEX_EVAL:$<TARGET_PROPERTY:QT_PLUGINS_$${CMAKE_PLUGIN_TYPE_ESCAPED}>>\") - set(_no_plugins_genex \"$<GENEX_EVAL:$<TARGET_PROPERTY:QT_NO_PLUGINS>>\") -endif() -set(_user_specified_genex - \"$<IN_LIST:Qt5::$$CMAKE_PLUGIN_NAME,${_manual_plugins_genex};${_plugin_type_genex}>\" -) -string(CONCAT _plugin_genex - \"$<$<OR:\" - # Add this plugin if it\'s in the list of manual plugins or plugins for the type - \"${_user_specified_genex},\" - # Add this plugin if the list of plugins for the type is empty, the PLUGIN_EXTENDS - # is either empty or equal to the module name, and the user hasn\'t blacklisted it - \"$<AND:\" - \"$<STREQUAL:${_plugin_type_genex},>,\" - \"$<OR:\" - \"$<STREQUAL:$<TARGET_PROPERTY:Qt5::$${CMAKE_PLUGIN_NAME},QT_PLUGIN_EXTENDS>,Qt5::$${CMAKE_MODULE_NAME}>,\" - \"$<STREQUAL:$<TARGET_PROPERTY:Qt5::$${CMAKE_PLUGIN_NAME},QT_PLUGIN_EXTENDS>,>\" - \">,\" - \"$<NOT:$<IN_LIST:Qt5::$${CMAKE_PLUGIN_NAME},${_no_plugins_genex}>>\" - \">\" - \">:Qt5::$$CMAKE_PLUGIN_NAME>\" -) -set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES - ${_plugin_genex} -) -set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES - \"$${CMAKE_PLUGIN_QT5_MODULE_DEPS}\" -) -!!ENDIF -set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} PROPERTY QT_PLUGIN_TYPE \"$$CMAKE_PLUGIN_TYPE\") -set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} PROPERTY QT_PLUGIN_EXTENDS \"$$CMAKE_PLUGIN_EXTENDS\") diff --git a/mkspecs/features/data/dumpvcvars.bat b/mkspecs/features/data/dumpvcvars.bat index 4721da2e39..fe9dfad585 100644 --- a/mkspecs/features/data/dumpvcvars.bat +++ b/mkspecs/features/data/dumpvcvars.bat @@ -1,30 +1,5 @@ -::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: :: Copyright (C) 2018 The Qt Company Ltd. -:: Contact: https://www.qt.io/licensing/ -:: -:: This file is part of the tools applications of the Qt Toolkit. -:: -:: $QT_BEGIN_LICENSE:GPL-EXCEPT$ -:: 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 General Public License Usage -:: Alternatively, this file may be used under the terms of the GNU -:: General Public License version 3 as published by the Free Software -:: Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -:: 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-3.0.html. -:: -:: $QT_END_LICENSE$ -:: -::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 @echo off diff --git a/mkspecs/features/data/mac/objc_namespace.sh b/mkspecs/features/data/mac/objc_namespace.sh index ceff2df324..10ace4ff55 100755 --- a/mkspecs/features/data/mac/objc_namespace.sh +++ b/mkspecs/features/data/mac/objc_namespace.sh @@ -1,48 +1,11 @@ #!/bin/bash - -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is the build configuration utility 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$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 script_argument_prefix="-Wobjc_namespace,--" required_arguments="target suffix original_ld" -optional_arguments="exclude_list exclude_regex slient" +optional_arguments="exclude_list exclude_regex silent" for argument in $required_arguments $optional_arguments; do declare "$argument=" @@ -100,11 +63,13 @@ sanitize_address() { echo "0x$address" } +arch_offset=0 read_binary() { local address=$1 local length=$2 - dd if="$target" bs=1 iseek=$address count=$length 2>|/dev/null + seek=$(($address + $arch_offset)) + dd if="$target" bs=1 iseek=$seek count=$length 2>|/dev/null } read_32bit_value() { @@ -112,23 +77,23 @@ read_32bit_value() { read_binary $address 4 | xxd -p | dd conv=swab 2>/dev/null | rev } -inspect_binary() { - inspect_mode="$1" +otool_args= +otool() { + command otool $otool_args "$@" +} - echo -n "đ Inspecting binary '$target', " - if [ ! -f "$target" ]; then - echo "target does not exist!" - exit 1 - fi +declare -a extra_classnames_files - read -a mach_header <<< "$(otool -h "$target" -v | tail -n 1)" - if [ "${mach_header[1]}" != "X86_64" ]; then - echo "binary is not 64-bit, only 64-bit binaries are supported!" - exit 1 - fi +inspect_binary() { + inspect_mode="$1" classnames_section="__objc_classname" classnames=$(otool -v -s __TEXT $classnames_section "$target" | tail -n +3) + if [ -z "$classnames" ]; then + echo " âšī¸ No Objective-C classes found in binary" + return 1 + fi + while read -a classname; do address=$(sanitize_address ${classname[0]}) name=${classname[1]} @@ -138,21 +103,26 @@ inspect_binary() { done <<< "$classnames" extra_classnames_file="$(mktemp -t ${classnames_section}_additions).S" + extra_classnames_files+=("$extra_classnames_file") if [ "$inspect_mode" == "inject_classnames" ]; then - echo "class names have not been namespaced, adding suffix '$suffix'..." + echo " âšī¸ Class names have not been namespaced, adding suffix '$suffix'..." printf ".section __TEXT,$classnames_section,cstring_literals,no_dead_strip\n" > $extra_classnames_file elif [ "$inspect_mode" == "patch_classes" ]; then - echo "found namespaced class names, updating class entries..." + echo " âšī¸ Found namespaced class names, updating class entries..." + fi + + classes=$(otool -o -v "$target" | grep "OBJC_CLASS_RO\|OBJC_METACLASS_RO") + if [ -z "$classes" ]; then + echo " đĨ Failed to read class entries from binary" + exit 1 fi - classes=$(otool -o -v "$target" | grep class_ro_t) while read -a class; do address="$(sanitize_address ${class[1]})" - class_flags="0x$(read_32bit_value $address)" if [ -z "$class_flags" ]; then - echo " đĨ failed to read class flags for class at $address" + echo " đĨ Failed to read class flags for class at $address" continue fi @@ -161,13 +131,13 @@ inspect_binary() { name_offset=$(($address + 24)) classname_address="0x$(read_32bit_value $name_offset)" if [ -z "$classname_address" ]; then - echo " đĨ failed to read class name address for class at $address" + echo " đĨ Failed to read class name address for class at $address" continue fi classname=$(get_entry address_to_classname $classname_address) if [ -z "$classname" ]; then - echo " đĨ failed to resolve class name for address '$classname_address'" + echo " đĨ Failed to resolve class name for address '$classname_address'" continue fi @@ -177,7 +147,7 @@ inspect_binary() { else class_type="class" fi - echo " đŊ skipping excluded $class_type '$classname'" + echo " đŊ Skipping excluded $class_type '$classname'" continue fi @@ -188,13 +158,13 @@ inspect_binary() { continue fi - echo " đ injecting $classnames_section entry '$newclassname' for '$classname'" + echo " đ Injecting $classnames_section entry '$newclassname' for '$classname'" printf ".asciz \"$newclassname\"\n" >> $extra_classnames_file elif [ "$inspect_mode" == "patch_classes" ]; then newclassname_address=$(get_entry classname_to_address ${newclassname}) if [ -z "$newclassname_address" ]; then - echo " đĨ failed to resolve class name address for class '$newclassname'" + echo " đĨ Failed to resolve class name address for class '$newclassname'" continue fi @@ -204,7 +174,9 @@ inspect_binary() { class_type="class" fi - echo " đ¨ patching class_ro_t at $address ($class_type) from $classname_address ($classname) to $newclassname_address ($newclassname)" + name_offset=$(($name_offset + $arch_offset)) + + echo " đ¨ Patching class_ro_t at $address ($class_type) from $classname_address ($classname) to $newclassname_address ($newclassname)" echo ${newclassname_address: -8} | rev | dd conv=swab 2>/dev/null | xxd -p -r -seek $name_offset -l 4 - "$target" fi done <<< "$classes" @@ -213,10 +185,43 @@ inspect_binary() { echo "đŠ Linking binary using '$original_ld'..." link_binary -inspect_binary inject_classnames +echo "đ Inspecting binary '$target'..." +if [ ! -f "$target" ]; then + echo " đĨ Target does not exist!" + exit 1 +fi -echo "đŠ Re-linking binary with extra __objc_classname section..." -link_binary $extra_classnames_file +read -a mach_header <<< "$(otool -h "$target" -v | tail -n 1)" +if [ "${mach_header[0]}" != "MH_MAGIC_64" ]; then + echo " đĨ Binary is not 64-bit, only 64-bit binaries are supported!" + exit 1 +fi + +architectures=$(otool -f -v "$target" | grep architecture) + +setup_arch() { + arch="$1" + if [ ! -z "$arch" ]; then + otool_args="-arch $arch" + offset=$(otool -f -v "$target" | grep -A 6 "architecture $arch" | grep offset) + offset="${offset##*( )}" + arch_offset="$(echo $offset | cut -d ' ' -f 2)" + echo "đ¤ Processing architecture '$arch' at offset $arch_offset..." + fi +} + +while read -a arch; do + setup_arch "${arch[1]}" + inspect_binary inject_classnames + if [ $? -ne 0 ]; then + exit + fi +done <<< "$architectures" -inspect_binary patch_classes +echo "đŠ Re-linking binary with extra __objc_classname section(s)..." +link_binary "${extra_classnames_files[@]}" +while read -a arch; do + setup_arch "${arch[1]}" + inspect_binary patch_classes +done <<< "$architectures" diff --git a/mkspecs/features/data/unix/findclasslist.pl b/mkspecs/features/data/unix/findclasslist.pl deleted file mode 100644 index b74b8b6a58..0000000000 --- a/mkspecs/features/data/unix/findclasslist.pl +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env perl -############################################################################# -## -## Copyright (C) 2016 Intel Corporation. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the build configuration tools 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$ -## -############################################################################# - -use strict; -my $syntax = "findclasslist.pl\n" . - "Replaces each \@FILE:filename\@ in stdin with the classes found in that file\n"; - -$\ = $/; -while (<STDIN>) { - chomp; - unless (/\@FILE:(.*)\@/) { - print; - next; - } - - # Replace this line with the class list - open HDR, "<$1" or die("Could not open header $1: $!"); - my $comment = " /* $1 */"; - while (my $line = <HDR>) { - # Match a struct or class declaration, but not a forward declaration - $line =~ /^(?:struct|class|namespace) (?:Q_.*_EXPORT)? (\w+)(?!;)/ or next; - print $comment if $comment; - printf " *%d%s*;\n", length $1, $1; - $comment = 0; - } - close HDR; -} |