1if(NOT DEFINED QT_DEFAULT_MAJOR_VERSION) 2 set(QT_DEFAULT_MAJOR_VERSION 5) 3endif() 4 5if (NOT TARGET Qt5::qmake) 6 add_executable(Qt5::qmake IMPORTED) 7 8!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) 9 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") 10!!ELSE 11 set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") 12!!ENDIF 13 _qt5_Core_check_file_exists(${imported_location}) 14 15 set_target_properties(Qt5::qmake PROPERTIES 16 IMPORTED_LOCATION ${imported_location} 17 ) 18endif() 19 20if (NOT TARGET Qt5::moc) 21 add_executable(Qt5::moc IMPORTED) 22 23!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) 24 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") 25!!ELSE 26 set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") 27!!ENDIF 28 _qt5_Core_check_file_exists(${imported_location}) 29 30 set_target_properties(Qt5::moc PROPERTIES 31 IMPORTED_LOCATION ${imported_location} 32 ) 33 # For CMake automoc feature 34 get_target_property(QT_MOC_EXECUTABLE Qt5::moc LOCATION) 35endif() 36 37if (NOT TARGET Qt5::rcc) 38 add_executable(Qt5::rcc IMPORTED) 39 40!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) 41 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") 42!!ELSE 43 set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") 44!!ENDIF 45 _qt5_Core_check_file_exists(${imported_location}) 46 47 set_target_properties(Qt5::rcc PROPERTIES 48 IMPORTED_LOCATION ${imported_location} 49 ) 50endif() 51 52set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_NAMESPACE" "Q_NAMESPACE_EXPORT") 53 54set(Qt5Core_QMAKE_EXECUTABLE Qt5::qmake) 55set(Qt5Core_MOC_EXECUTABLE Qt5::moc) 56set(Qt5Core_RCC_EXECUTABLE Qt5::rcc) 57 58set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_MAJOR_VERSION 5) 59set_property(TARGET Qt5::Core PROPERTY INTERFACE_QT_COORD_TYPE $$QT_COORD_TYPE) 60!!IF !isEmpty(CMAKE_MIN_DARWIN_DEPLOYMENT_TARGET) 61set_property(TARGET Qt5::Core PROPERTY QT_DARWIN_MIN_DEPLOYMENT_TARGET \"$$CMAKE_MIN_DARWIN_DEPLOYMENT_TARGET\") 62!!ENDIF 63set_property(TARGET Qt5::Core APPEND PROPERTY 64 COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION QT_COORD_TYPE 65) 66 67include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5CoreConfigExtrasMkspecDir.cmake\") 68 69foreach(_dir ${_qt5_corelib_extra_includes}) 70 _qt5_Core_check_file_exists(${_dir}) 71endforeach() 72 73list(APPEND Qt5Core_INCLUDE_DIRS ${_qt5_corelib_extra_includes}) 74set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5_corelib_extra_includes}) 75set(_qt5_corelib_extra_includes) 76 77# Targets using Qt need to use the POSITION_INDEPENDENT_CODE property. The 78# Qt5_POSITION_INDEPENDENT_CODE variable is used in the # qt5_use_module 79# macro to add it. 80set(Qt5_POSITION_INDEPENDENT_CODE True) 81 82# On x86 and x86-64 systems with ELF binaries (especially Linux), due to 83# a new optimization in GCC 5.x in combination with a recent version of 84# GNU binutils, compiling Qt applications with -fPIE is no longer 85# enough. 86# Applications now need to be compiled with the -fPIC option if the Qt option 87# \"reduce relocations\" is active. For backward compatibility only, Qt accepts 88# the use of -fPIE for GCC 4.x versions. 89set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS $$QMAKE_CXXFLAGS_APP) 90 91# TODO Qt6: Remove 92set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"\") 93 94!!IF !isEmpty(QT_NAMESPACE) 95list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE) 96list(APPEND Qt5Core_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) 97set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS QT_NAMESPACE=$$QT_NAMESPACE) 98!!ENDIF 99 100!!IF !isEmpty(CMAKE_DISABLED_FEATURES) 101set(Qt5_DISABLED_FEATURES 102 $$CMAKE_DISABLED_FEATURES 103) 104!!ENDIF 105 106set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG>) 107 108set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype) 109 110!!IF qtConfig(reduce_exports) 111set(QT_VISIBILITY_AVAILABLE \"True\") 112!!ENDIF 113 114!!IF !isEmpty(QT_LIBINFIX) 115set(QT_LIBINFIX \"$${QT_LIBINFIX}\") 116!!ENDIF 117 118!!IF !isEmpty(CMAKE_WINDOWS_BUILD) 119set(Qt5Core_QTMAIN_LIBRARIES Qt5::WinMain) 120 121if (NOT TARGET Qt5::WinMain) 122 add_library(Qt5::WinMain STATIC IMPORTED) 123 124!!IF !isEmpty(CMAKE_RELEASE_TYPE) 125 set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 126!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) 127 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\") 128!!ELSE 129 set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\") 130!!ENDIF 131 132 set_target_properties(Qt5::WinMain PROPERTIES 133 IMPORTED_LOCATION_RELEASE ${imported_location} 134 ) 135!!ENDIF 136 137!!IF !isEmpty(CMAKE_DEBUG_TYPE) 138 set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) 139 140!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) 141 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\") 142!!ELSE 143 set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\") 144!!ENDIF 145 146 set_target_properties(Qt5::WinMain PROPERTIES 147 IMPORTED_LOCATION_DEBUG ${imported_location} 148 ) 149!!ENDIF 150 151 if (NOT Qt5_NO_LINK_QTMAIN) 152 set(_isExe $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>) 153 set(_isWin32 $<BOOL:$<TARGET_PROPERTY:WIN32_EXECUTABLE>>) 154 set(_isNotExcluded $<NOT:$<BOOL:$<TARGET_PROPERTY:Qt5_NO_LINK_QTMAIN>>>) 155 set(_isPolicyNEW $<TARGET_POLICY:CMP0020>) 156 get_target_property(_configs Qt5::Core IMPORTED_CONFIGURATIONS) 157 set_property(TARGET Qt5::Core APPEND PROPERTY 158 INTERFACE_LINK_LIBRARIES 159 $<$<AND:${_isExe},${_isWin32},${_isNotExcluded},${_isPolicyNEW}>:Qt5::WinMain> 160 ) 161 # For backward compatibility with CMake < 2.8.12 162 foreach(_config ${_configs}) 163 set_property(TARGET Qt5::Core APPEND PROPERTY 164 IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} 165 $<$<AND:${_isExe},${_isWin32},${_isNotExcluded},${_isPolicyNEW}>:Qt5::WinMain> 166 ) 167 endforeach() 168 unset(_configs) 169 unset(_isExe) 170 unset(_isWin32) 171 unset(_isNotExcluded) 172 unset(_isPolicyNEW) 173 endif() 174endif() 175!!ENDIF 176 177get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH) 178 179set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\") 180 181if (ANDROID_PLATFORM) 182 include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5AndroidSupport.cmake\") 183endif() 184 185_qt5_Core_check_file_exists(${_Qt5CTestMacros}) 186 187# Create versionless tool targets. 188foreach(__qt_tool qmake moc rcc) 189 if(NOT \"${QT_NO_CREATE_VERSIONLESS_TARGETS}\" AND NOT TARGET Qt::${__qt_tool} 190 AND TARGET Qt5::${__qt_tool}) 191 add_executable(Qt::${__qt_tool} IMPORTED) 192 get_target_property(__qt_imported_location Qt5::${__qt_tool} IMPORTED_LOCATION) 193 set_target_properties(Qt::${__qt_tool} 194 PROPERTIES IMPORTED_LOCATION \"${__qt_imported_location}\") 195 endif() 196endforeach() 197 198!!IF !isEmpty(CMAKE_WINDOWS_BUILD) 199# Add a versionless target for WinMain. 200if(NOT \"${QT_NO_CREATE_VERSIONLESS_TARGETS}\" AND NOT TARGET Qt::WinMain) 201 add_library(Qt::WinMain INTERFACE IMPORTED) 202 set_target_properties(Qt::WinMain PROPERTIES 203 INTERFACE_LINK_LIBRARIES \"Qt5::WinMain\" 204 ) 205endif() 206!!ENDIF 207