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