f696205b37
The default symlink is not available on Windows, so the qplatformdefs.h header is not available there. Instead we can bypass the symlink and use the actual mkspec name directly. Change-Id: I1d7e05f35c1ff56befab5bed307cb1755ade8377 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
195 lines
8.4 KiB
Plaintext
195 lines
8.4 KiB
Plaintext
|
|
defineReplace(cmakeModuleName) {
|
|
_module = $$1
|
|
_name = $$eval(QT.$${_module}.name)
|
|
cmake_module_name = $$replace(_name, ^Qt, )
|
|
return ($$cmake_module_name)
|
|
}
|
|
|
|
defineReplace(cmakeModuleList) {
|
|
variable = $$1
|
|
out =
|
|
for(v, variable) {
|
|
out += $$cmakeModuleName($$v)
|
|
}
|
|
return ($$join(out, ";"))
|
|
}
|
|
|
|
CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE})
|
|
|
|
CMAKE_MODULE_DEPS = $$cmakeModuleList($$eval(QT.$${MODULE}.depends))
|
|
CMAKE_PARTIAL_MODULE_DEPS = $$replace(CMAKE_MODULE_DEPS, ";", ";Qt5::")
|
|
!isEmpty(CMAKE_PARTIAL_MODULE_DEPS):CMAKE_QT5_MODULE_DEPS = "Qt5::$${CMAKE_PARTIAL_MODULE_DEPS}"
|
|
|
|
CMAKE_QT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]/
|
|
CMAKE_QT_INSTALL_PREFIX_ESCAPED = "^$$re_escape($$CMAKE_QT_INSTALL_PREFIX)"
|
|
|
|
CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
|
|
contains(CMAKE_INCLUDE_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
|
|
CMAKE_INCLUDE_DIR = $$replace(CMAKE_INCLUDE_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
|
|
} else {
|
|
CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
|
|
}
|
|
|
|
CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
|
|
contains(CMAKE_LIB_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
|
|
CMAKE_LIB_DIR = $$replace(CMAKE_LIB_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
|
|
CMAKE_RELATIVE_INSTALL_DIR = $$replace(CMAKE_LIB_DIR, "[^/]+", ..)
|
|
# We need to go up another two levels because the CMake files are
|
|
# installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
|
|
CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_DIR}../../"
|
|
} else {
|
|
CMAKE_LIB_DIR_IS_ABSOLUTE = True
|
|
}
|
|
|
|
CMAKE_BIN_DIR = $$[QT_INSTALL_BINS]/
|
|
contains(CMAKE_BIN_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
|
|
CMAKE_BIN_DIR = $$replace(CMAKE_BIN_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
|
|
} else {
|
|
CMAKE_BIN_DIR_IS_ABSOLUTE = True
|
|
}
|
|
|
|
CMAKE_DATA_DIR = $$[QT_INSTALL_DATA]/ # For the mkspecs
|
|
contains(CMAKE_DATA_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
|
|
CMAKE_DATA_DIR = $$replace(CMAKE_DATA_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
|
|
} else {
|
|
CMAKE_DATA_DIR_IS_ABSOLUTE = True
|
|
}
|
|
|
|
static|staticlib:CMAKE_STATIC_TYPE = true
|
|
|
|
contains(QT_CONFIG, reduce_relocations):CMAKE_ADD_FPIE_FLAGS = "true"
|
|
|
|
CMAKE_MKSPEC = $$relative_path($$QMAKESPEC, $$[QT_HOST_DATA/get]/mkspecs)
|
|
|
|
macx {
|
|
!isEmpty(CMAKE_STATIC_TYPE) {
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}_debug.a
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.a
|
|
|
|
CMAKE_PRL_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}_debug.prl
|
|
CMAKE_PRL_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.prl
|
|
} else {
|
|
CONFIG(qt_framework, qt_framework|qt_no_framework) {
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.framework/Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.framework/Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}
|
|
CMAKE_BUILD_IS_FRAMEWORK = "true"
|
|
} else {
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}_debug.$$eval(QT.$${MODULE}.VERSION).dylib
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.$$eval(QT.$${MODULE}.VERSION).dylib
|
|
}
|
|
}
|
|
} else:win32 {
|
|
CMAKE_WINDOWS_BUILD = "true"
|
|
CMAKE_FIND_OTHER_LIBRARY_BUILD = "true"
|
|
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d$$eval(QT.$${MODULE}.MAJOR_VERSION).dll
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}$$eval(QT.$${MODULE}.MAJOR_VERSION).dll
|
|
|
|
win32-g++ {
|
|
CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}d.a
|
|
CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqtmain$${QT_LIBINFIX}.a
|
|
|
|
!isEmpty(CMAKE_STATIC_TYPE) {
|
|
CMAKE_STATIC_WINDOWS_BUILD = "true"
|
|
CMAKE_IMPLIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d.a
|
|
CMAKE_IMPLIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.a
|
|
|
|
CMAKE_PRL_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d.prl
|
|
CMAKE_PRL_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.prl
|
|
} else {
|
|
CMAKE_IMPLIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d$$eval(QT.$${MODULE}.MAJOR_VERSION).a
|
|
CMAKE_IMPLIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}$$eval(QT.$${MODULE}.MAJOR_VERSION).a
|
|
}
|
|
} else {
|
|
CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib
|
|
CMAKE_WINMAIN_FILE_LOCATION_RELEASE = qtmain$${QT_LIBINFIX}.lib
|
|
|
|
!isEmpty(CMAKE_STATIC_TYPE) {
|
|
CMAKE_STATIC_WINDOWS_BUILD = "true"
|
|
CMAKE_IMPLIB_FILE_LOCATION_DEBUG = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d.lib
|
|
CMAKE_IMPLIB_FILE_LOCATION_RELEASE = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.lib
|
|
|
|
CMAKE_PRL_FILE_LOCATION_DEBUG = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d.prl
|
|
CMAKE_PRL_FILE_LOCATION_RELEASE = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.prl
|
|
} else {
|
|
CMAKE_IMPLIB_FILE_LOCATION_DEBUG = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}d$$eval(QT.$${MODULE}.MAJOR_VERSION).lib
|
|
CMAKE_IMPLIB_FILE_LOCATION_RELEASE = Qt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}$$eval(QT.$${MODULE}.MAJOR_VERSION).lib
|
|
}
|
|
}
|
|
} else {
|
|
!isEmpty(CMAKE_STATIC_TYPE) {
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.a
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.a
|
|
CMAKE_PRL_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.prl
|
|
CMAKE_PRL_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.prl
|
|
} else {
|
|
CMAKE_LIB_FILE_LOCATION_DEBUG = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.so.$$eval(QT.$${MODULE}.VERSION)
|
|
CMAKE_LIB_FILE_LOCATION_RELEASE = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.so.$$eval(QT.$${MODULE}.VERSION)
|
|
CMAKE_LIB_SONAME = libQt$${CMAKE_MODULE_NAME}$${QT_LIBINFIX}.so.$$eval(QT.$${MODULE}.MAJOR_VERSION)
|
|
}
|
|
}
|
|
|
|
CMAKE_DEBUG_TYPE =
|
|
CMAKE_RELEASE_TYPE =
|
|
|
|
# Requirements:
|
|
# * If Qt is configured with -debug, we're creating debug libraries and not
|
|
# release libraries, regardless of whether we're on a platform where
|
|
# debug_and_release is true.
|
|
# * If Qt is configured with -release, we're creating release libraries and not
|
|
# debug libraries, regardless of whether we're on a platform where
|
|
# debug_and_release is true.
|
|
# * If Qt is configured with neither -debug nor -release, and we are on a
|
|
# platform where debug_and_release is true, we're creating both
|
|
# debug and release libraries.
|
|
# * If Qt is configured with -debug on a platform where debug_and_release is
|
|
# true, and 'make release' is subsequently invoked, CMake is only aware of
|
|
# the debug libraries at build time.
|
|
|
|
equals(QMAKE_HOST.os, Windows): CMAKE_BIN_SUFFIX = ".exe"
|
|
if (build_all|CONFIG(debug, debug|release)):CMAKE_DEBUG_TYPE = debug
|
|
if (build_all|CONFIG(release, debug|release)):CMAKE_RELEASE_TYPE = release
|
|
|
|
INSTALLS += cmake_qt5_module_files
|
|
|
|
cmake_config_file.input = $$PWD/../cmake/Qt5BasicConfig.cmake.in
|
|
cmake_config_file.output = $$DESTDIR/cmake/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Config.cmake
|
|
|
|
cmake_config_version_file.input = $$PWD/../cmake/Qt5ConfigVersion.cmake.in
|
|
cmake_config_version_file.output = $$DESTDIR/cmake/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigVersion.cmake
|
|
|
|
!build_pass:QMAKE_SUBSTITUTES += \
|
|
cmake_config_file \
|
|
cmake_config_version_file
|
|
|
|
cmake_qt5_module_files.files = \
|
|
$$cmake_config_file.output \
|
|
$$cmake_config_version_file.output
|
|
|
|
cmake_extras_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake.in
|
|
exists($$cmake_extras_file.input) {
|
|
|
|
CMAKE_MODULE_EXTRAS = "true"
|
|
cmake_extras_file.output = $$DESTDIR/cmake/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake
|
|
|
|
!build_pass:QMAKE_SUBSTITUTES += cmake_extras_file
|
|
|
|
cmake_qt5_module_files.files += \
|
|
$$cmake_extras_file.output
|
|
}
|
|
|
|
cmake_macros_file.input = $$_PRO_FILE_PWD_/Qt5$${CMAKE_MODULE_NAME}Macros.cmake
|
|
exists($$cmake_macros_file.input) {
|
|
CMAKE_MODULE_MACROS = "true"
|
|
|
|
cmake_macros_file.output = $$DESTDIR/cmake/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}Macros.cmake
|
|
cmake_macros_file.CONFIG = verbatim
|
|
|
|
!build_pass:QMAKE_SUBSTITUTES += cmake_macros_file
|
|
|
|
cmake_qt5_module_files.files += $$cmake_macros_file.output
|
|
}
|
|
|
|
cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
|