diff --git a/mkspecs/features/common_pre.prf b/mkspecs/features/common_pre.prf index 5c62b0284..1f5379db2 100644 --- a/mkspecs/features/common_pre.prf +++ b/mkspecs/features/common_pre.prf @@ -194,6 +194,27 @@ isEmpty(PREFIX) { win32: CONFIG(debug, debug|release): DLL_DEBUG_SUFFIX = d +################################ +# Inter-project dependencies +################################ +defineTest(addStaticLibraryDependency) { + win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/$${1}.lib + else: PRE_TARGETDEPS += $$DestRoot/lib/lib$${1}.a + export(PRE_TARGETDEPS) +} +defineTest(addLibraryDependency) { + contains(BLACK_CONFIG, Static) { + addStaticLibraryDependency($$1) + } + else { + win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/$${1}.lib + win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/lib$${1}.a + linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/lib$${1}.so + macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/lib$${1}.dylib + export(PRE_TARGETDEPS) + } +} + ################################ # Experimental support for Clang on Windows ################################ diff --git a/mkspecs/features/libraries.pri b/mkspecs/features/libraries.pri index f275e85b7..f3c5fadc6 100644 --- a/mkspecs/features/libraries.pri +++ b/mkspecs/features/libraries.pri @@ -7,30 +7,12 @@ unix:!macx { } blackgui { - contains(BLACK_CONFIG, Static) { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib - else: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a - } else { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackgui.lib - win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.a - linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.so - macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackgui.dylib - } - + addLibraryDependency(blackgui) LIBS *= -lblackgui } blackcore { - contains(BLACK_CONFIG, Static) { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib - else: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a - } else { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackcore.lib - win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.a - linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.so - macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackcore.dylib - } - + addLibraryDependency(blackcore) LIBS *= -lblackcore -lvatlib } @@ -39,16 +21,7 @@ blacksound { } blackinput { - contains(BLACK_CONFIG, Static) { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib - else: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a - } else { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackinput.lib - win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.a - linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.so - macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackinput.dylib - } - + addLibraryDependency(blackinput) LIBS *= -lblackinput macx { @@ -61,15 +34,7 @@ blackinput { } blackmisc { - contains(BLACK_CONFIG, Static) { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib - else: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a - } else { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackmisc.lib - win32-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.a - linux-g++*: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.so - macx-clang: PRE_TARGETDEPS += $$DestRoot/lib/libblackmisc.dylib - } + addLibraryDependency(blackmisc) LIBS *= -lblackmisc win32 { @@ -78,7 +43,6 @@ blackmisc { } blackconfig { - win32:msvc: PRE_TARGETDEPS += $$DestRoot/lib/blackconfig.lib - else: PRE_TARGETDEPS += $$DestRoot/lib/libblackconfig.a + addStaticLibraryDependency(blackconfig) LIBS *= -lblackconfig } diff --git a/src/plugins/simulator/fs9/fs9.pro b/src/plugins/simulator/fs9/fs9.pro index f8dfd5fe5..44a86807f 100644 --- a/src/plugins/simulator/fs9/fs9.pro +++ b/src/plugins/simulator/fs9/fs9.pro @@ -13,6 +13,8 @@ INCLUDEPATH += . $$SourceRoot/src LIBS += -lsimulatorfscommon -lfsuipc -luuid LIBS += -ldxguid -lole32 +addStaticLibraryDependency(simulatorfscommon) +addStaticLibraryDependency(fsuipc) SOURCES += *.cpp HEADERS += *.h diff --git a/src/plugins/simulator/fsx/fsx.pro b/src/plugins/simulator/fsx/fsx.pro index d643aabd2..4ae5c0d3b 100644 --- a/src/plugins/simulator/fsx/fsx.pro +++ b/src/plugins/simulator/fsx/fsx.pro @@ -17,6 +17,9 @@ INCLUDEPATH *= $$EXTERNALSROOT/common/include/simconnect/FSX-XPack LIBS *= -L$$EXTERNALS_LIB_DIR/FSX-XPack LIBS *= -lsimulatorfscommon -lsimulatorfsxcommon -lfsuipc -lSimConnect LIBS += -ldxguid -lole32 +addStaticLibraryDependency(simulatorfscommon) +addStaticLibraryDependency(simulatorfsxcommon) +addStaticLibraryDependency(fsuipc) SOURCES += *.cpp HEADERS += *.h diff --git a/src/plugins/simulator/fsxconfig/fsxconfig.pro b/src/plugins/simulator/fsxconfig/fsxconfig.pro index 96ee474d1..db425a1cb 100644 --- a/src/plugins/simulator/fsxconfig/fsxconfig.pro +++ b/src/plugins/simulator/fsxconfig/fsxconfig.pro @@ -14,6 +14,8 @@ SOURCES += *.cpp HEADERS += *.h DISTFILES += simulatorfsxconfig.json LIBS += -lsimulatorfsxcommon +addStaticLibraryDependency(simulatorfsxcommon) + DESTDIR = $$DestRoot/bin/plugins/simulator win32 { diff --git a/src/plugins/simulator/p3d/p3d.pro b/src/plugins/simulator/p3d/p3d.pro index 1b57b8f1b..198afb9e6 100644 --- a/src/plugins/simulator/p3d/p3d.pro +++ b/src/plugins/simulator/p3d/p3d.pro @@ -34,6 +34,9 @@ equals(WORD_SIZE,32) { LIBS *= -lSimConnect } LIBS += -ldxguid -lole32 +addStaticLibraryDependency(simulatorfscommon) +addStaticLibraryDependency(simulatorfsxcommon) +addStaticLibraryDependency(fsuipc) # Ignore linker warning about missing pdb files from Simconnect msvc: QMAKE_LFLAGS *= /ignore:4099 diff --git a/src/plugins/simulator/p3dconfig/p3dconfig.pro b/src/plugins/simulator/p3dconfig/p3dconfig.pro index d6c3bb2f9..42c460ced 100644 --- a/src/plugins/simulator/p3dconfig/p3dconfig.pro +++ b/src/plugins/simulator/p3dconfig/p3dconfig.pro @@ -14,6 +14,8 @@ SOURCES += *.cpp HEADERS += *.h DISTFILES += simulatorp3dconfig.json LIBS += -lsimulatorfsxcommon +addStaticLibraryDependency(simulatorfsxcommon) + DESTDIR = $$DestRoot/bin/plugins/simulator win32 {