2010-09-10 10:50:53 +02:00
!isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included")
QTCREATOR_PRI_INCLUDED = 1
2014-02-25 13:16:28 +01:00
QTCREATOR_VERSION = 3.1.81
QTCREATOR_COMPAT_VERSION = 3.1.81
2013-06-27 14:43:30 +02:00
BINARY_ARTIFACTS_BRANCH = master
2010-11-01 18:51:20 +01:00
2014-03-05 08:45:28 +01:00
# enable c++11
isEqual(QT_MAJOR_VERSION, 5) {
CONFIG += c++11
} else {
macx {
2014-03-07 11:21:22 +01:00
!macx-clang*: error("You need to use the macx-clang or macx-clang-libc++ mkspec to compile Qt Creator (call qmake with '-spec unsupported/macx-clang')")
QMAKE_CFLAGS += -mmacosx-version-min=10.7
QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
QMAKE_OBJECTIVE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
QMAKE_LFLAGS += -stdlib=libc++ -mmacosx-version-min=10.7
2014-03-05 08:45:28 +01:00
} else:linux-g++* {
QMAKE_CXXFLAGS += -std=c++0x
} else:linux-icc* {
QMAKE_CXXFLAGS += -std=c++11
} else:linux-clang* {
QMAKE_CXXFLAGS += -std=c++11
QMAKE_LFLAGS += -stdlib=libc++ -lc++abi
} else:win32-g++* {
QMAKE_CXXFLAGS += -std=c++0x
}
# nothing to do for MSVC10+
}
2014-02-06 10:27:21 +01:00
2012-09-11 15:37:51 +02:00
isEqual(QT_MAJOR_VERSION, 5) {
defineReplace(cleanPath) {
return($$clean_path($$1))
}
defineReplace(targetPath) {
return($$shell_path($$1))
}
} else { # qt5
2009-04-17 11:26:03 +02:00
defineReplace(cleanPath) {
win32:1 ~= s|\\\\|/|g
contains(1, ^/.*):pfx = /
else:pfx =
segs = $$split(1, /)
out =
for(seg, segs) {
equals(seg, ..):out = $$member(out, 0, -2)
else:!equals(seg, .):out += $$seg
}
return($$join(out, /, $$pfx))
}
defineReplace(targetPath) {
2009-11-24 12:40:14 +01:00
return($$replace(1, /, $$QMAKE_DIR_SEP))
2009-04-17 11:26:03 +02:00
}
2008-12-02 12:01:29 +01:00
2012-09-11 15:37:51 +02:00
} # qt5
2010-08-04 18:03:47 +02:00
defineReplace(qtLibraryName) {
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)
}
2010-09-29 13:35:06 +02:00
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)
}
}
2011-11-22 10:59:28 +01:00
greaterThan(QT_MAJOR_VERSION, $$maj) {
return(true)
}
2010-09-29 13:35:06 +02:00
return(false)
}
2012-09-11 15:37:51 +02:00
isEqual(QT_MAJOR_VERSION, 5) {
# For use in custom compilers which just copy files
defineReplace(stripSrcDir) {
return($$relative_path($$absolute_path($$1, $$OUT_PWD), $$_PRO_FILE_PWD_))
}
} else { # qt5
2009-05-06 17:41:38 +02:00
# For use in custom compilers which just copy files
win32:i_flag = i
defineReplace(stripSrcDir) {
win32 {
!contains(1, ^.:.*):1 = $$OUT_PWD/$$1
} else {
!contains(1, ^/.*):1 = $$OUT_PWD/$$1
}
out = $$cleanPath($$1)
2012-09-11 12:38:10 +02:00
out ~= s|^$$re_escape($$_PRO_FILE_PWD_/)||$$i_flag
2009-05-06 17:41:38 +02:00
return($$out)
}
2012-09-11 15:37:51 +02:00
} # qt5
2013-03-27 16:10:58 +02:00
!isEmpty(BUILD_TESTS):TEST = 1
2008-12-08 17:06:45 +01:00
isEmpty(TEST):CONFIG(debug, debug|release) {
!debug_and_release|build_pass {
2008-12-02 12:01:29 +01:00
TEST = 1
}
}
2009-05-12 16:18:38 +02:00
isEmpty(IDE_LIBRARY_BASENAME) {
2009-03-23 15:36:15 +01:00
IDE_LIBRARY_BASENAME = lib
}
2011-10-17 15:23:00 +02:00
2008-12-08 17:06:45 +01:00
equals(TEST, 1) {
QT +=testlib
DEFINES += WITH_TESTS
2008-12-02 12:01:29 +01:00
}
2009-05-06 16:02:06 +02:00
IDE_SOURCE_TREE = $$PWD
2009-05-11 12:37:05 +02:00
isEmpty(IDE_BUILD_TREE) {
sub_dir = $$_PRO_FILE_PWD_
sub_dir ~= s,^$$re_escape($$PWD),,
IDE_BUILD_TREE = $$cleanPath($$OUT_PWD)
IDE_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
}
2009-05-06 16:18:05 +02:00
IDE_APP_PATH = $$IDE_BUILD_TREE/bin
2008-12-02 12:01:29 +01:00
macx {
2009-09-14 17:42:08 +02:00
IDE_APP_TARGET = "Qt Creator"
2009-05-06 16:18:05 +02:00
IDE_LIBRARY_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/PlugIns
2009-04-17 11:26:03 +02:00
IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH
2009-05-06 16:18:05 +02:00
IDE_LIBEXEC_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
IDE_DATA_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/Resources
2009-11-02 21:36:26 +01:00
IDE_DOC_PATH = $$IDE_DATA_PATH/doc
2010-06-10 10:18:54 +02:00
IDE_BIN_PATH = $$IDE_APP_PATH/$${IDE_APP_TARGET}.app/Contents/MacOS
2009-05-06 16:39:07 +02:00
copydata = 1
2008-12-02 12:01:29 +01:00
} else {
2011-10-17 19:44:08 +02:00
contains(TEMPLATE, vc.*):vcproj = 1
IDE_APP_TARGET = qtcreator
2009-03-23 15:36:15 +01:00
IDE_LIBRARY_PATH = $$IDE_BUILD_TREE/$$IDE_LIBRARY_BASENAME/qtcreator
2009-04-17 11:26:03 +02:00
IDE_PLUGIN_PATH = $$IDE_LIBRARY_PATH/plugins
2009-05-06 16:18:05 +02:00
IDE_LIBEXEC_PATH = $$IDE_APP_PATH # FIXME
2009-04-17 11:26:03 +02:00
IDE_DATA_PATH = $$IDE_BUILD_TREE/share/qtcreator
2009-11-02 21:36:26 +01:00
IDE_DOC_PATH = $$IDE_BUILD_TREE/share/doc/qtcreator
2010-06-10 10:18:54 +02:00
IDE_BIN_PATH = $$IDE_APP_PATH
2009-05-06 16:39:07 +02:00
!isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1
2008-12-02 12:01:29 +01:00
}
INCLUDEPATH += \
2011-08-30 15:57:00 +02:00
$$IDE_BUILD_TREE/src \ # for <app/app_version.h>
2008-12-02 12:01:29 +01:00
$$IDE_SOURCE_TREE/src/libs \
2013-12-12 14:09:06 +01:00
$$IDE_SOURCE_TREE/tools
2014-01-22 16:34:58 +01:00
QTC_PLUGIN_DIRS = $$(QTC_PLUGIN_DIRS)
2014-03-20 13:51:47 +01:00
QTC_PLUGIN_DIRS = $$split(QTC_PLUGIN_DIRS, $$QMAKE_DIRLIST_SEP)
2013-12-12 14:09:06 +01:00
QTC_PLUGIN_DIRS += $$IDE_SOURCE_TREE/src/plugins
2013-12-18 12:07:31 +01:00
for(dir, QTC_PLUGIN_DIRS) {
2013-12-12 14:09:06 +01:00
INCLUDEPATH += $$dir
}
2008-12-02 12:01:29 +01:00
2011-03-09 22:00:08 +01:00
CONFIG += depend_includepath
2008-12-02 12:01:29 +01:00
LIBS += -L$$IDE_LIBRARY_PATH
2008-12-03 10:27:12 +01:00
2011-10-17 19:37:07 +02:00
!isEmpty(vcproj) {
DEFINES += IDE_LIBRARY_BASENAME=\"$$IDE_LIBRARY_BASENAME\"
} else {
DEFINES += IDE_LIBRARY_BASENAME=\\\"$$IDE_LIBRARY_BASENAME\\\"
}
2013-03-27 20:16:05 +01:00
DEFINES += QT_CREATOR QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
2010-02-11 10:37:25 +01:00
!macx:DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION
2009-02-19 11:31:12 +01:00
2008-12-03 10:27:12 +01:00
unix {
2009-10-23 12:37:53 +02:00
CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared
2008-12-03 10:27:12 +01:00
2009-10-23 12:37:53 +02:00
CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared
2008-12-03 10:27:12 +01:00
2009-04-17 11:26:03 +02:00
RCC_DIR = $${OUT_PWD}/.rcc
UI_DIR = $${OUT_PWD}/.uic
2008-12-03 10:27:12 +01:00
}
2009-03-12 15:49:09 +01:00
2014-05-07 13:39:05 +03:00
win32-msvc* {
2010-03-15 12:30:45 +01:00
#Don't warn about sprintf, fopen etc being 'unsafe'
DEFINES += _CRT_SECURE_NO_WARNINGS
2013-09-24 17:29:29 +03:00
# Speed up startup time when debugging with cdb
QMAKE_LFLAGS_DEBUG += /INCREMENTAL:NO
2010-03-15 12:30:45 +01:00
}
2011-11-23 11:31:09 +01:00
qt:greaterThan(QT_MAJOR_VERSION, 4) {
2012-02-09 09:35:03 +01:00
contains(QT, core): QT += concurrent
2011-11-23 11:31:09 +01:00
contains(QT, gui): QT += widgets
2012-06-06 11:46:36 +02:00
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x040900
2011-11-23 11:31:09 +01:00
}
2012-10-12 14:12:40 +02:00
2013-02-03 20:48:34 +02:00
QBSFILE = $$replace(_PRO_FILE_, \\.pro$, .qbs)
exists($$QBSFILE):OTHER_FILES += $$QBSFILE
2013-03-25 19:09:49 +01:00
2014-05-07 23:03:40 +03:00
!isEmpty(QTC_PLUGIN_DEPENDS):LIBS *= -L$$IDE_PLUGIN_PATH
2013-03-25 19:09:49 +01:00
# recursively resolve plugin deps
done_plugins =
for(ever) {
isEmpty(QTC_PLUGIN_DEPENDS): \
break()
done_plugins += $$QTC_PLUGIN_DEPENDS
for(dep, QTC_PLUGIN_DEPENDS) {
2013-12-12 14:09:06 +01:00
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)
2013-03-25 19:09:49 +01:00
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)
}