forked from qt-creator/qt-creator
Define variables in qtcreator.pri for the various install locations, instead of hardcoding the paths everywhere where they are needed. Change-Id: Ia34de711a7f2be317272ede023e2a8b9cdcc30fe Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
106 lines
3.2 KiB
Plaintext
106 lines
3.2 KiB
Plaintext
depfile = $$replace(_PRO_FILE_PWD_, ([^/]+$), \\1/\\1_dependencies.pri)
|
|
exists($$depfile) {
|
|
include($$depfile)
|
|
isEmpty(QTC_PLUGIN_NAME): \
|
|
error("$$basename(depfile) does not define QTC_PLUGIN_NAME.")
|
|
} else {
|
|
isEmpty(QTC_PLUGIN_NAME): \
|
|
error("QTC_PLUGIN_NAME is empty. Maybe you meant to create $$basename(depfile)?")
|
|
}
|
|
TARGET = $$QTC_PLUGIN_NAME
|
|
|
|
plugin_deps = $$QTC_PLUGIN_DEPENDS
|
|
plugin_test_deps = $$QTC_TEST_DEPENDS
|
|
plugin_recmds = $$QTC_PLUGIN_RECOMMENDS
|
|
|
|
include(../qtcreator.pri)
|
|
|
|
defineReplace(dependencyName) {
|
|
dependencies_file =
|
|
for(dir, QTC_PLUGIN_DIRS) {
|
|
exists($$dir/$$1/$${1}_dependencies.pri) {
|
|
dependencies_file = $$dir/$$1/$${1}_dependencies.pri
|
|
break()
|
|
}
|
|
}
|
|
isEmpty(dependencies_file): \
|
|
error("Plugin dependency $$dep not found")
|
|
include($$dependencies_file)
|
|
return($$QTC_PLUGIN_NAME)
|
|
}
|
|
|
|
# for substitution in the .json
|
|
dependencyList =
|
|
for(dep, plugin_deps) {
|
|
dependencyList += " { \"Name\" : \"$$dependencyName($$dep)\", \"Version\" : \"$$QTCREATOR_VERSION\" }"
|
|
}
|
|
for(dep, plugin_recmds) {
|
|
dependencyList += " { \"Name\" : \"$$dependencyName($$dep)\", \"Version\" : \"$$QTCREATOR_VERSION\", \"Type\" : \"optional\" }"
|
|
}
|
|
for(dep, plugin_test_deps) {
|
|
dependencyList += " { \"Name\" : \"$$dependencyName($$dep)\", \"Version\" : \"$$QTCREATOR_VERSION\", \"Type\" : \"test\" }"
|
|
}
|
|
dependencyList = $$join(dependencyList, ",$$escape_expand(\\n)")
|
|
|
|
dependencyList = "\"Dependencies\" : [$$escape_expand(\\n)$$dependencyList$$escape_expand(\\n) ]"
|
|
|
|
# use gui precompiled header for plugins by default
|
|
isEmpty(PRECOMPILED_HEADER):PRECOMPILED_HEADER = $$PWD/shared/qtcreator_gui_pch.h
|
|
|
|
isEmpty(USE_USER_DESTDIR) {
|
|
DESTDIR = $$IDE_PLUGIN_PATH
|
|
} else {
|
|
win32 {
|
|
DESTDIRAPPNAME = "qtcreator"
|
|
DESTDIRBASE = "$$(LOCALAPPDATA)"
|
|
isEmpty(DESTDIRBASE):DESTDIRBASE="$$(USERPROFILE)\Local Settings\Application Data"
|
|
} else:macx {
|
|
DESTDIRAPPNAME = "Qt Creator"
|
|
DESTDIRBASE = "$$(HOME)/Library/Application Support"
|
|
} else:unix {
|
|
DESTDIRAPPNAME = "qtcreator"
|
|
DESTDIRBASE = "$$(XDG_DATA_HOME)"
|
|
isEmpty(DESTDIRBASE):DESTDIRBASE = "$$(HOME)/.local/share/data"
|
|
else:DESTDIRBASE = "$$DESTDIRBASE/data"
|
|
}
|
|
DESTDIR = "$$DESTDIRBASE/QtProject/$$DESTDIRAPPNAME/plugins/$$QTCREATOR_VERSION"
|
|
}
|
|
LIBS += -L$$DESTDIR
|
|
INCLUDEPATH += $$OUT_PWD
|
|
|
|
# copy the plugin spec
|
|
isEmpty(TARGET) {
|
|
error("qtcreatorplugin.pri: You must provide a TARGET")
|
|
}
|
|
|
|
PLUGINJSON = $$_PRO_FILE_PWD_/$${TARGET}.json
|
|
PLUGINJSON_IN = $${PLUGINJSON}.in
|
|
exists($$PLUGINJSON_IN) {
|
|
DISTFILES += $$PLUGINJSON_IN
|
|
QMAKE_SUBSTITUTES += $$PLUGINJSON_IN
|
|
PLUGINJSON = $$OUT_PWD/$${TARGET}.json
|
|
} else {
|
|
# need to support that for external plugins
|
|
DISTFILES += $$PLUGINJSON
|
|
}
|
|
|
|
osx: QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/PlugIns/
|
|
include(rpath.pri)
|
|
|
|
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
|
|
|
|
TEMPLATE = lib
|
|
CONFIG += plugin plugin_with_soname
|
|
linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|
|
|
|
!macx {
|
|
target.path = $$INSTALL_PLUGIN_PATH
|
|
INSTALLS += target
|
|
}
|
|
|
|
MIMETYPES = $$_PRO_FILE_PWD_/$${TARGET}.mimetypes.xml
|
|
exists($$MIMETYPES):DISTFILES += $$MIMETYPES
|
|
|
|
TARGET = $$qtLibraryName($$TARGET)
|
|
|