forked from qt-creator/qt-creator
Currently it is set by passing defines to qmake, which complicates package build setups. Set the display version where the numerical version is defined. This also makes it available to developer builds. Also switch around the display version and numerical version in the about dialog, since e.g. "4.3.0-rc1" is more descriptive than "4.2.83". Change-Id: I26dda427975acdc6cc169f8d625f57918167cf19 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
275 lines
8.7 KiB
Plaintext
275 lines
8.7 KiB
Plaintext
!isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included")
|
|
QTCREATOR_PRI_INCLUDED = 1
|
|
|
|
QTCREATOR_VERSION = 4.2.83
|
|
QTCREATOR_COMPAT_VERSION = 4.2.83
|
|
VERSION = $$QTCREATOR_VERSION
|
|
QTCREATOR_DISPLAY_VERSION = 4.3.0-rc1
|
|
BINARY_ARTIFACTS_BRANCH = 4.3
|
|
|
|
CONFIG += c++14
|
|
|
|
defineReplace(qtLibraryTargetName) {
|
|
unset(LIBRARY_NAME)
|
|
LIBRARY_NAME = $$1
|
|
CONFIG(debug, debug|release) {
|
|
!debug_and_release|build_pass {
|
|
mac:RET = $$member(LIBRARY_NAME, 0)_debug
|
|
else:win32:RET = $$member(LIBRARY_NAME, 0)d
|
|
}
|
|
}
|
|
isEmpty(RET):RET = $$LIBRARY_NAME
|
|
return($$RET)
|
|
}
|
|
|
|
defineReplace(qtLibraryName) {
|
|
RET = $$qtLibraryTargetName($$1)
|
|
win32 {
|
|
VERSION_LIST = $$split(QTCREATOR_VERSION, .)
|
|
RET = $$RET$$first(VERSION_LIST)
|
|
}
|
|
return($$RET)
|
|
}
|
|
|
|
defineTest(minQtVersion) {
|
|
maj = $$1
|
|
min = $$2
|
|
patch = $$3
|
|
isEqual(QT_MAJOR_VERSION, $$maj) {
|
|
isEqual(QT_MINOR_VERSION, $$min) {
|
|
isEqual(QT_PATCH_VERSION, $$patch) {
|
|
return(true)
|
|
}
|
|
greaterThan(QT_PATCH_VERSION, $$patch) {
|
|
return(true)
|
|
}
|
|
}
|
|
greaterThan(QT_MINOR_VERSION, $$min) {
|
|
return(true)
|
|
}
|
|
}
|
|
greaterThan(QT_MAJOR_VERSION, $$maj) {
|
|
return(true)
|
|
}
|
|
return(false)
|
|
}
|
|
|
|
# For use in custom compilers which just copy files
|
|
defineReplace(stripSrcDir) {
|
|
return($$relative_path($$absolute_path($$1, $$OUT_PWD), $$_PRO_FILE_PWD_))
|
|
}
|
|
|
|
macos:!minQtVersion(5, 7, 0) {
|
|
# Qt 5.6 still sets deployment target 10.7, which does not work
|
|
# with all C++11/14 features (e.g. std::future)
|
|
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
|
|
}
|
|
|
|
QTC_BUILD_TESTS = $$(QTC_BUILD_TESTS)
|
|
!isEmpty(QTC_BUILD_TESTS):TEST = $$QTC_BUILD_TESTS
|
|
|
|
!isEmpty(BUILD_TESTS):TEST = 1
|
|
|
|
isEmpty(TEST):CONFIG(debug, debug|release) {
|
|
!debug_and_release|build_pass {
|
|
TEST = 1
|
|
}
|
|
}
|
|
|
|
isEmpty(IDE_LIBRARY_BASENAME) {
|
|
IDE_LIBRARY_BASENAME = lib
|
|
}
|
|
|
|
equals(TEST, 1) {
|
|
QT +=testlib
|
|
DEFINES += WITH_TESTS
|
|
}
|
|
|
|
IDE_SOURCE_TREE = $$PWD
|
|
isEmpty(IDE_BUILD_TREE) {
|
|
sub_dir = $$_PRO_FILE_PWD_
|
|
sub_dir ~= s,^$$re_escape($$PWD),,
|
|
IDE_BUILD_TREE = $$clean_path($$OUT_PWD)
|
|
IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
|
|
}
|
|
|
|
IDE_APP_PATH = $$IDE_BUILD_TREE/bin
|
|
osx {
|
|
IDE_APP_TARGET = "Qt Creator"
|
|
|
|
# check if IDE_BUILD_TREE is actually an existing Qt Creator.app,
|
|
# for building against a binary package
|
|
exists($$IDE_BUILD_TREE/Contents/MacOS/Qt Creator): IDE_APP_BUNDLE = $$IDE_BUILD_TREE
|
|
else: IDE_APP_BUNDLE = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app
|
|
|
|
# set output path if not set manually
|
|
isEmpty(IDE_OUTPUT_PATH): IDE_OUTPUT_PATH = $$IDE_APP_BUNDLE/Contents
|
|
|
|
IDE_LIBRARY_PATH = $$IDE_OUTPUT_PATH/Frameworks
|
|
IDE_PLUGIN_PATH = $$IDE_OUTPUT_PATH/PlugIns
|
|
IDE_LIBEXEC_PATH = $$IDE_OUTPUT_PATH/Resources
|
|
IDE_DATA_PATH = $$IDE_OUTPUT_PATH/Resources
|
|
IDE_DOC_PATH = $$IDE_DATA_PATH/doc
|
|
IDE_BIN_PATH = $$IDE_OUTPUT_PATH/MacOS
|
|
copydata = 1
|
|
|
|
LINK_LIBRARY_PATH = $$IDE_APP_BUNDLE/Contents/Frameworks
|
|
LINK_PLUGIN_PATH = $$IDE_APP_BUNDLE/Contents/PlugIns
|
|
|
|
INSTALL_LIBRARY_PATH = $$QTC_PREFIX/$${IDE_APP_TARGET}.app/Contents/Frameworks
|
|
INSTALL_PLUGIN_PATH = $$QTC_PREFIX/$${IDE_APP_TARGET}.app/Contents/PlugIns
|
|
INSTALL_LIBEXEC_PATH = $$QTC_PREFIX/$${IDE_APP_TARGET}.app/Contents/Resources
|
|
INSTALL_DATA_PATH = $$QTC_PREFIX/$${IDE_APP_TARGET}.app/Contents/Resources
|
|
INSTALL_DOC_PATH = $$INSTALL_DATA_PATH/doc
|
|
INSTALL_BIN_PATH = $$QTC_PREFIX/$${IDE_APP_TARGET}.app/Contents/MacOS
|
|
INSTALL_APP_PATH = $$QTC_PREFIX/
|
|
} else {
|
|
contains(TEMPLATE, vc.*):vcproj = 1
|
|
IDE_APP_TARGET = qtcreator
|
|
|
|
# target output path if not set manually
|
|
isEmpty(IDE_OUTPUT_PATH): IDE_OUTPUT_PATH = $$IDE_BUILD_TREE
|
|
|
|
IDE_LIBRARY_PATH = $$IDE_OUTPUT_PATH/$$IDE_LIBRARY_BASENAME/qtcreator
|
|
IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH/plugins
|
|
IDE_DATA_PATH = $$IDE_OUTPUT_PATH/share/qtcreator
|
|
IDE_DOC_PATH = $$IDE_OUTPUT_PATH/share/doc/qtcreator
|
|
IDE_BIN_PATH = $$IDE_OUTPUT_PATH/bin
|
|
win32: \
|
|
IDE_LIBEXEC_PATH = $$IDE_OUTPUT_PATH/bin
|
|
else: \
|
|
IDE_LIBEXEC_PATH = $$IDE_OUTPUT_PATH/libexec/qtcreator
|
|
!isEqual(IDE_SOURCE_TREE, $$IDE_OUTPUT_PATH):copydata = 1
|
|
|
|
LINK_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
|
|
LINK_PLUGIN_PATH = $$LINK_LIBRARY_PATH/plugins
|
|
|
|
INSTALL_LIBRARY_PATH = $$QTC_PREFIX/$$IDE_LIBRARY_BASENAME/qtcreator
|
|
INSTALL_PLUGIN_PATH = $$INSTALL_LIBRARY_PATH/plugins
|
|
win32: \
|
|
INSTALL_LIBEXEC_PATH = $$QTC_PREFIX/bin
|
|
else: \
|
|
INSTALL_LIBEXEC_PATH = $$QTC_PREFIX/libexec/qtcreator
|
|
INSTALL_DATA_PATH = $$QTC_PREFIX/share/qtcreator
|
|
INSTALL_DOC_PATH = $$QTC_PREFIX/share/doc/qtcreator
|
|
INSTALL_BIN_PATH = $$QTC_PREFIX/bin
|
|
INSTALL_APP_PATH = $$QTC_PREFIX/bin
|
|
}
|
|
|
|
RELATIVE_PLUGIN_PATH = $$relative_path($$IDE_PLUGIN_PATH, $$IDE_BIN_PATH)
|
|
RELATIVE_LIBEXEC_PATH = $$relative_path($$IDE_LIBEXEC_PATH, $$IDE_BIN_PATH)
|
|
RELATIVE_DATA_PATH = $$relative_path($$IDE_DATA_PATH, $$IDE_BIN_PATH)
|
|
RELATIVE_DOC_PATH = $$relative_path($$IDE_DOC_PATH, $$IDE_BIN_PATH)
|
|
DEFINES += $$shell_quote(RELATIVE_PLUGIN_PATH=\"$$RELATIVE_PLUGIN_PATH\")
|
|
DEFINES += $$shell_quote(RELATIVE_LIBEXEC_PATH=\"$$RELATIVE_LIBEXEC_PATH\")
|
|
DEFINES += $$shell_quote(RELATIVE_DATA_PATH=\"$$RELATIVE_DATA_PATH\")
|
|
DEFINES += $$shell_quote(RELATIVE_DOC_PATH=\"$$RELATIVE_DOC_PATH\")
|
|
|
|
INCLUDEPATH += \
|
|
$$IDE_BUILD_TREE/src \ # for <app/app_version.h> in case of actual build directory
|
|
$$IDE_SOURCE_TREE/src \ # for <app/app_version.h> in case of binary package with dev package
|
|
$$IDE_SOURCE_TREE/src/libs \
|
|
$$IDE_SOURCE_TREE/tools
|
|
|
|
win32:exists($$IDE_SOURCE_TREE/lib/qtcreator) {
|
|
# for .lib in case of binary package with dev package
|
|
LIBS *= -L$$IDE_SOURCE_TREE/lib/qtcreator
|
|
LIBS *= -L$$IDE_SOURCE_TREE/lib/qtcreator/plugins
|
|
}
|
|
|
|
QTC_PLUGIN_DIRS_FROM_ENVIRONMENT = $$(QTC_PLUGIN_DIRS)
|
|
QTC_PLUGIN_DIRS += $$split(QTC_PLUGIN_DIRS_FROM_ENVIRONMENT, $$QMAKE_DIRLIST_SEP)
|
|
QTC_PLUGIN_DIRS += $$IDE_SOURCE_TREE/src/plugins
|
|
for(dir, QTC_PLUGIN_DIRS) {
|
|
INCLUDEPATH += $$dir
|
|
}
|
|
|
|
CONFIG += \
|
|
depend_includepath \
|
|
no_include_pwd
|
|
|
|
LIBS *= -L$$LINK_LIBRARY_PATH # Qt Creator libraries
|
|
exists($$IDE_LIBRARY_PATH): LIBS *= -L$$IDE_LIBRARY_PATH # library path from output path
|
|
|
|
!isEmpty(vcproj) {
|
|
DEFINES += IDE_LIBRARY_BASENAME=\"$$IDE_LIBRARY_BASENAME\"
|
|
} else {
|
|
DEFINES += IDE_LIBRARY_BASENAME=\\\"$$IDE_LIBRARY_BASENAME\\\"
|
|
}
|
|
|
|
DEFINES += \
|
|
QT_CREATOR \
|
|
QT_NO_CAST_TO_ASCII \
|
|
QT_RESTRICTED_CAST_FROM_ASCII \
|
|
QT_DISABLE_DEPRECATED_BEFORE=0x050600
|
|
!macx:DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION
|
|
|
|
unix {
|
|
CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
|
|
CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared
|
|
|
|
CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
|
|
CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared
|
|
|
|
RCC_DIR = $${OUT_PWD}/.rcc
|
|
UI_DIR = $${OUT_PWD}/.uic
|
|
}
|
|
|
|
msvc {
|
|
#Don't warn about sprintf, fopen etc being 'unsafe'
|
|
DEFINES += _CRT_SECURE_NO_WARNINGS
|
|
QMAKE_CXXFLAGS_WARN_ON *= -w44996
|
|
# Speed up startup time when debugging with cdb
|
|
QMAKE_LFLAGS_DEBUG += /INCREMENTAL:NO
|
|
}
|
|
|
|
qt {
|
|
contains(QT, core): QT += concurrent
|
|
contains(QT, gui): QT += widgets
|
|
}
|
|
|
|
QBSFILE = $$replace(_PRO_FILE_, \\.pro$, .qbs)
|
|
exists($$QBSFILE):DISTFILES += $$QBSFILE
|
|
|
|
!isEmpty(QTC_PLUGIN_DEPENDS) {
|
|
LIBS *= -L$$IDE_PLUGIN_PATH # plugin path from output directory
|
|
LIBS *= -L$$LINK_PLUGIN_PATH # when output path is different from Qt Creator build directory
|
|
}
|
|
|
|
# recursively resolve plugin deps
|
|
done_plugins =
|
|
for(ever) {
|
|
isEmpty(QTC_PLUGIN_DEPENDS): \
|
|
break()
|
|
done_plugins += $$QTC_PLUGIN_DEPENDS
|
|
for(dep, QTC_PLUGIN_DEPENDS) {
|
|
dependencies_file =
|
|
for(dir, QTC_PLUGIN_DIRS) {
|
|
exists($$dir/$$dep/$${dep}_dependencies.pri) {
|
|
dependencies_file = $$dir/$$dep/$${dep}_dependencies.pri
|
|
break()
|
|
}
|
|
}
|
|
isEmpty(dependencies_file): \
|
|
error("Plugin dependency $$dep not found")
|
|
include($$dependencies_file)
|
|
LIBS += -l$$qtLibraryName($$QTC_PLUGIN_NAME)
|
|
}
|
|
QTC_PLUGIN_DEPENDS = $$unique(QTC_PLUGIN_DEPENDS)
|
|
QTC_PLUGIN_DEPENDS -= $$unique(done_plugins)
|
|
}
|
|
|
|
# recursively resolve library deps
|
|
done_libs =
|
|
for(ever) {
|
|
isEmpty(QTC_LIB_DEPENDS): \
|
|
break()
|
|
done_libs += $$QTC_LIB_DEPENDS
|
|
for(dep, QTC_LIB_DEPENDS) {
|
|
include($$PWD/src/libs/$$dep/$${dep}_dependencies.pri)
|
|
LIBS += -l$$qtLibraryName($$QTC_LIB_NAME)
|
|
}
|
|
QTC_LIB_DEPENDS = $$unique(QTC_LIB_DEPENDS)
|
|
QTC_LIB_DEPENDS -= $$unique(done_libs)
|
|
}
|