aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-09-23 17:13:24 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-10-10 07:40:49 +0000
commit73ed687cf11cb2d4e7f263ef5754039b96b69aaa (patch)
treec01dcb59c5c6b32d8c4f5ce0bd667b39a5cf323f /src/plugins
parentc84f4c258ef91c76e19198d7eeb64291d0171938 (diff)
Fix static build
Make sure we link in the generator plugins. Fixes: QBS-1491 Change-Id: I8c48a73f972c4089cfc8c097a67e2945837e9ed4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/generator/clangcompilationdb/clangcompilationdb.pri1
-rw-r--r--src/plugins/generator/clangcompilationdb/clangcompilationdb.pro3
-rw-r--r--src/plugins/generator/clangcompilationdb/clangcompilationdbgeneratorplugin.cpp2
-rw-r--r--src/plugins/generator/iarew/iarew.pri1
-rw-r--r--src/plugins/generator/iarew/iarew.pro3
-rw-r--r--src/plugins/generator/iarew/iarewgeneratorplugin.cpp2
-rw-r--r--src/plugins/generator/keiluv/keiluv.pri1
-rw-r--r--src/plugins/generator/keiluv/keiluv.pro3
-rw-r--r--src/plugins/generator/keiluv/keiluvgeneratorplugin.cpp2
-rw-r--r--src/plugins/generator/makefilegenerator/makefilegenerator.pri1
-rw-r--r--src/plugins/generator/makefilegenerator/makefilegenerator.pro3
-rw-r--r--src/plugins/generator/makefilegenerator/makefilegeneratorplugin.cpp2
-rw-r--r--src/plugins/generator/visualstudio/visualstudio.pri1
-rw-r--r--src/plugins/generator/visualstudio/visualstudio.pro3
-rw-r--r--src/plugins/generator/visualstudio/visualstudiogeneratorplugin.cpp2
-rw-r--r--src/plugins/plugins.pri13
-rw-r--r--src/plugins/qbs_plugin_common.pri9
-rw-r--r--src/plugins/qbsplugin.qbs16
-rw-r--r--src/plugins/scanner/cpp/cpp.pri1
-rw-r--r--src/plugins/scanner/cpp/cpp.pro3
-rw-r--r--src/plugins/scanner/cpp/cppscanner.cpp2
-rw-r--r--src/plugins/scanner/qt/qt.pri1
-rw-r--r--src/plugins/scanner/qt/qt.pro3
-rw-r--r--src/plugins/scanner/qt/qtscanner.cpp2
-rw-r--r--src/plugins/use_plugin.pri10
25 files changed, 60 insertions, 30 deletions
diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri
new file mode 100644
index 000000000..7c9a71129
--- /dev/null
+++ b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pri
@@ -0,0 +1 @@
+qbsPluginTarget = clangcompilationdbgenerator
diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro
index 030051271..1b5342598 100644
--- a/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro
+++ b/src/plugins/generator/clangcompilationdb/clangcompilationdb.pro
@@ -1,7 +1,6 @@
+include(clangcompilationdb.pri)
include(../../plugins.pri)
-TARGET = clangcompilationdbgenerator
-
QT = core
HEADERS += \
diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdbgeneratorplugin.cpp b/src/plugins/generator/clangcompilationdb/clangcompilationdbgeneratorplugin.cpp
index ab0e713aa..c6dec555f 100644
--- a/src/plugins/generator/clangcompilationdb/clangcompilationdbgeneratorplugin.cpp
+++ b/src/plugins/generator/clangcompilationdb/clangcompilationdbgeneratorplugin.cpp
@@ -60,5 +60,5 @@ static void QbsClangDbGeneratorPluginUnload()
#endif
#endif
-QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, QbsClangDbGeneratorPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, clangcompilationdbgenerator,
QbsClangDbGeneratorPluginLoad, QbsClangDbGeneratorPluginUnload)
diff --git a/src/plugins/generator/iarew/iarew.pri b/src/plugins/generator/iarew/iarew.pri
new file mode 100644
index 000000000..68a3593fa
--- /dev/null
+++ b/src/plugins/generator/iarew/iarew.pri
@@ -0,0 +1 @@
+qbsPluginTarget = iarewgenerator
diff --git a/src/plugins/generator/iarew/iarew.pro b/src/plugins/generator/iarew/iarew.pro
index 7de474a45..074635047 100644
--- a/src/plugins/generator/iarew/iarew.pro
+++ b/src/plugins/generator/iarew/iarew.pro
@@ -1,8 +1,7 @@
+include(iarew.pri)
include(../../plugins.pri)
include(../../../shared/json/json.pri)
-TARGET = iarewgenerator
-
QT = core
# Plugin file.
diff --git a/src/plugins/generator/iarew/iarewgeneratorplugin.cpp b/src/plugins/generator/iarew/iarewgeneratorplugin.cpp
index 9f0798573..bd75c7ad5 100644
--- a/src/plugins/generator/iarew/iarewgeneratorplugin.cpp
+++ b/src/plugins/generator/iarew/iarewgeneratorplugin.cpp
@@ -63,5 +63,5 @@ static void QbsIarewGeneratorPluginUnload()
#endif
#endif
-QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, QbsIarewGeneratorPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, iarewgenerator,
QbsIarewGeneratorPluginLoad, QbsIarewGeneratorPluginUnload)
diff --git a/src/plugins/generator/keiluv/keiluv.pri b/src/plugins/generator/keiluv/keiluv.pri
new file mode 100644
index 000000000..6995fb059
--- /dev/null
+++ b/src/plugins/generator/keiluv/keiluv.pri
@@ -0,0 +1 @@
+qbsPluginTarget = keiluvgenerator
diff --git a/src/plugins/generator/keiluv/keiluv.pro b/src/plugins/generator/keiluv/keiluv.pro
index ba3e4d27b..52d7c0ed4 100644
--- a/src/plugins/generator/keiluv/keiluv.pro
+++ b/src/plugins/generator/keiluv/keiluv.pro
@@ -1,8 +1,7 @@
+include(keiluv.pri)
include(../../plugins.pri)
include(../../../shared/json/json.pri)
-TARGET = keiluvgenerator
-
QT = core
# Plugin file.
diff --git a/src/plugins/generator/keiluv/keiluvgeneratorplugin.cpp b/src/plugins/generator/keiluv/keiluvgeneratorplugin.cpp
index 33e552936..91b73ef71 100644
--- a/src/plugins/generator/keiluv/keiluvgeneratorplugin.cpp
+++ b/src/plugins/generator/keiluv/keiluvgeneratorplugin.cpp
@@ -63,5 +63,5 @@ static void QbsKeiluvGeneratorPluginUnload()
#endif
#endif
-QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, QbsKeiluvGeneratorPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, keiluvgenerator,
QbsKeiluvGeneratorPluginLoad, QbsKeiluvGeneratorPluginUnload)
diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.pri b/src/plugins/generator/makefilegenerator/makefilegenerator.pri
new file mode 100644
index 000000000..971e63d24
--- /dev/null
+++ b/src/plugins/generator/makefilegenerator/makefilegenerator.pri
@@ -0,0 +1 @@
+qbsPluginTarget = makefilegenerator
diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.pro b/src/plugins/generator/makefilegenerator/makefilegenerator.pro
index fae962fbb..c03191c39 100644
--- a/src/plugins/generator/makefilegenerator/makefilegenerator.pro
+++ b/src/plugins/generator/makefilegenerator/makefilegenerator.pro
@@ -1,7 +1,6 @@
+include(makefilegenerator.pri)
include(../../plugins.pri)
-TARGET = makefilegenerator
-
QT = core
HEADERS += \
diff --git a/src/plugins/generator/makefilegenerator/makefilegeneratorplugin.cpp b/src/plugins/generator/makefilegenerator/makefilegeneratorplugin.cpp
index 01b843a06..5789414bf 100644
--- a/src/plugins/generator/makefilegenerator/makefilegeneratorplugin.cpp
+++ b/src/plugins/generator/makefilegenerator/makefilegeneratorplugin.cpp
@@ -60,5 +60,5 @@ static void MakefileGeneratorPluginUnload()
#endif
#endif
-QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, MakefileGeneratorPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, makefilegenerator,
MakefileGeneratorPluginLoad, MakefileGeneratorPluginUnload)
diff --git a/src/plugins/generator/visualstudio/visualstudio.pri b/src/plugins/generator/visualstudio/visualstudio.pri
new file mode 100644
index 000000000..13a48e85d
--- /dev/null
+++ b/src/plugins/generator/visualstudio/visualstudio.pri
@@ -0,0 +1 @@
+qbsPluginTarget = visualstudiogenerator
diff --git a/src/plugins/generator/visualstudio/visualstudio.pro b/src/plugins/generator/visualstudio/visualstudio.pro
index 196709bad..7d2398c8d 100644
--- a/src/plugins/generator/visualstudio/visualstudio.pro
+++ b/src/plugins/generator/visualstudio/visualstudio.pro
@@ -1,8 +1,7 @@
+include(visualstudio.pri)
include(../../plugins.pri)
include(../../../shared/json/json.pri)
-TARGET = visualstudiogenerator
-
QT = core
HEADERS += \
diff --git a/src/plugins/generator/visualstudio/visualstudiogeneratorplugin.cpp b/src/plugins/generator/visualstudio/visualstudiogeneratorplugin.cpp
index 9907c27f7..ef4e39fcb 100644
--- a/src/plugins/generator/visualstudio/visualstudiogeneratorplugin.cpp
+++ b/src/plugins/generator/visualstudio/visualstudiogeneratorplugin.cpp
@@ -63,5 +63,5 @@ static void QbsVisualStudioGeneratorPluginUnload()
#endif
#endif
-QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, QbsVisualStudioGeneratorPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" GENERATOR_EXPORT, visualstudiogenerator,
QbsVisualStudioGeneratorPluginLoad, QbsVisualStudioGeneratorPluginUnload)
diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri
index 393f1d24d..43d7dcfac 100644
--- a/src/plugins/plugins.pri
+++ b/src/plugins/plugins.pri
@@ -1,12 +1,7 @@
-include(../library_dirname.pri)
-include(../install_prefix.pri)
+include(qbs_plugin_common.pri)
-!isEmpty(QBS_PLUGINS_BUILD_DIR) {
- destdirPrefix = $${QBS_PLUGINS_BUILD_DIR}
-} else {
- destdirPrefix = $$shadowed($$PWD)/../../$${QBS_LIBRARY_DIRNAME}
-}
-DESTDIR = $${destdirPrefix}/qbs/plugins
+TARGET = $$qbsPluginTarget
+DESTDIR = $$qbsPluginDestDir
isEmpty(QBSLIBDIR): QBSLIBDIR = $$OUT_PWD/../../../../$${QBS_LIBRARY_DIRNAME}
isEmpty(QBS_RPATH): QBS_RPATH = ../..
@@ -15,7 +10,7 @@ include($${PWD}/../lib/corelib/use_corelib.pri)
TEMPLATE = lib
CONFIG += c++14
-CONFIG += create_prl
+CONFIG(static, static|shared): CONFIG += create_prl
unix: CONFIG += plugin
!isEmpty(QBS_PLUGINS_INSTALL_DIR): \
diff --git a/src/plugins/qbs_plugin_common.pri b/src/plugins/qbs_plugin_common.pri
new file mode 100644
index 000000000..45ade4989
--- /dev/null
+++ b/src/plugins/qbs_plugin_common.pri
@@ -0,0 +1,9 @@
+include(../library_dirname.pri)
+include(../install_prefix.pri)
+
+!isEmpty(QBS_PLUGINS_BUILD_DIR) {
+ destdirPrefix = $${QBS_PLUGINS_BUILD_DIR}
+} else {
+ destdirPrefix = $$shadowed($$PWD)/../../$${QBS_LIBRARY_DIRNAME}
+}
+qbsPluginDestDir = $${destdirPrefix}/qbs/plugins
diff --git a/src/plugins/qbsplugin.qbs b/src/plugins/qbsplugin.qbs
index 0f31a8a78..b37fffe81 100644
--- a/src/plugins/qbsplugin.qbs
+++ b/src/plugins/qbsplugin.qbs
@@ -30,4 +30,20 @@ QbsProduct {
condition: isForDarwin
bundle.isBundle: false
}
+
+ Export {
+ Depends { name: "cpp" }
+ Properties {
+ condition: qbs.targetOS.contains("darwin")
+ cpp.linkerFlags: ["-u", "_qbs_static_plugin_register_" + name]
+ }
+ Properties {
+ condition: qbs.toolchain.contains("gcc")
+ cpp.linkerFlags: "--require-defined=qbs_static_plugin_register_" + name
+ }
+ Properties {
+ condition: qbs.toolchain.contains("msvc")
+ cpp.linkerFlags: "/INCLUDE:qbs_static_plugin_register_" + name
+ }
+ }
}
diff --git a/src/plugins/scanner/cpp/cpp.pri b/src/plugins/scanner/cpp/cpp.pri
new file mode 100644
index 000000000..515e65635
--- /dev/null
+++ b/src/plugins/scanner/cpp/cpp.pri
@@ -0,0 +1 @@
+qbsPluginTarget = qbs_cpp_scanner
diff --git a/src/plugins/scanner/cpp/cpp.pro b/src/plugins/scanner/cpp/cpp.pro
index cf8e6c347..12a6d7b6c 100644
--- a/src/plugins/scanner/cpp/cpp.pro
+++ b/src/plugins/scanner/cpp/cpp.pro
@@ -1,8 +1,7 @@
+include(cpp.pri)
include(../../plugins.pri)
DEFINES += CPLUSPLUS_NO_PARSER
-TARGET = qbs_cpp_scanner
-
QT = core
HEADERS += CPlusPlusForwardDeclarations.h Lexer.h Token.h ../scanner.h \
diff --git a/src/plugins/scanner/cpp/cppscanner.cpp b/src/plugins/scanner/cpp/cppscanner.cpp
index cbab8a012..1cebc52eb 100644
--- a/src/plugins/scanner/cpp/cppscanner.cpp
+++ b/src/plugins/scanner/cpp/cppscanner.cpp
@@ -330,6 +330,6 @@ static void QbsCppScannerPluginUnload()
{
}
-QBS_REGISTER_STATIC_PLUGIN(extern "C" CPPSCANNER_EXPORT, QbsCppScannerPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" CPPSCANNER_EXPORT, qbs_cpp_scanner,
QbsCppScannerPluginLoad, QbsCppScannerPluginUnload)
diff --git a/src/plugins/scanner/qt/qt.pri b/src/plugins/scanner/qt/qt.pri
new file mode 100644
index 000000000..71e3a8a45
--- /dev/null
+++ b/src/plugins/scanner/qt/qt.pri
@@ -0,0 +1 @@
+qbsPluginTarget = qbs_qt_scanner
diff --git a/src/plugins/scanner/qt/qt.pro b/src/plugins/scanner/qt/qt.pro
index d90f61b2a..f231ea9e2 100644
--- a/src/plugins/scanner/qt/qt.pro
+++ b/src/plugins/scanner/qt/qt.pro
@@ -1,7 +1,6 @@
+include(qt.pri)
include(../../plugins.pri)
-TARGET = qbs_qt_scanner
-
QT = core
HEADERS += ../scanner.h
diff --git a/src/plugins/scanner/qt/qtscanner.cpp b/src/plugins/scanner/qt/qtscanner.cpp
index 40d062e1f..22fdcb79d 100644
--- a/src/plugins/scanner/qt/qtscanner.cpp
+++ b/src/plugins/scanner/qt/qtscanner.cpp
@@ -191,5 +191,5 @@ static void QbsQtScannerPluginUnload()
{
}
-QBS_REGISTER_STATIC_PLUGIN(extern "C" SCANNER_EXPORT, QbsQtScannerPlugin,
+QBS_REGISTER_STATIC_PLUGIN(extern "C" SCANNER_EXPORT, qbs_qt_scanner,
QbsQtScannerPluginLoad, QbsQtScannerPluginUnload)
diff --git a/src/plugins/use_plugin.pri b/src/plugins/use_plugin.pri
new file mode 100644
index 000000000..53be9f4db
--- /dev/null
+++ b/src/plugins/use_plugin.pri
@@ -0,0 +1,10 @@
+include(qbs_plugin_common.pri)
+
+qbsPluginLibName = $$qbsPluginTarget
+win32:CONFIG(debug, debug|release):CONFIG(static, static|shared): \
+ qbsPluginLibName = $${qbsPluginLibName}d
+LIBS += -l$$qbsPluginLibName
+
+macos: QMAKE_LFLAGS += -Wl,-u,_qbs_static_plugin_register_$$qbsPluginTarget
+!macos:gcc: QMAKE_LFLAGS += -Wl,--require-defined=qbs_static_plugin_register_$$qbsPluginTarget
+msvc: QMAKE_LFLAGS += /INCLUDE:qbs_static_plugin_register_$$qbsPluginTarget