summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@qt.io>2018-04-18 13:35:10 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-04-29 10:06:11 +0000
commitfddf7ee536e4fd0061d0ee933707881cebe54223 (patch)
treec35f42095a2e51846e89fa24e0b13b78696f5b9f
parentd66075b01d5211d12c0b3d796c4d2f3e8f88a2e9 (diff)
downloadqttools-fddf7ee536e4fd0061d0ee933707881cebe54223.tar.gz
Link qdoc to static libclang
Done-with: Mikhail Svetkin <mikhail.svetkin@qt.io> Change-Id: Ifbd4e1b27f658f7d4f287a8a51f0cda54814e754 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r--mkspecs/features/qt_find_clang.prf197
-rw-r--r--src/qdoc/qdoc.pro8
2 files changed, 202 insertions, 3 deletions
diff --git a/mkspecs/features/qt_find_clang.prf b/mkspecs/features/qt_find_clang.prf
index 2b2538418..17d18a5fb 100644
--- a/mkspecs/features/qt_find_clang.prf
+++ b/mkspecs/features/qt_find_clang.prf
@@ -83,9 +83,200 @@ for(_, $$list(_)) { # just a way to break easily
!contains(QMAKE_DEFAULT_LIBDIRS, $$CLANG_LIBDIR): CLANG_LIBS = -L$${CLANG_LIBDIR}
equals(QMAKE_HOST.os, Windows): \
- CLANG_LIBS += -llibclang -ladvapi32 -lshell32
- else: \
- CLANG_LIBS += -lclang
+ CLANG_LIBS += -llibclang_static -ladvapi32 -lshell32 -lMincore
+ else: {
+ !equals(QMAKE_HOST.os, Darwin): CLANG_LIBS+=-Wl,--start-group
+ CLANG_LIBS += -lclangAnalysis \
+ -lclangApplyReplacements \
+ -lclangARCMigrate \
+ -lclangAST \
+ -lclangASTMatchers \
+ -lclangBasic \
+ -lclangChangeNamespace \
+ -lclangCodeGen \
+ -lclangCrossTU \
+ -lclangDaemon \
+ -lclangDriver \
+ -lclangDynamicASTMatchers \
+ -lclangEdit \
+ -lclangFormat \
+ -lclangFrontend \
+ -lclangFrontendTool \
+ -lclangHandleCXX \
+ -lclangIncludeFixer \
+ -lclangIncludeFixerPlugin \
+ -lclangIndex \
+ -lclangLex \
+ -lclangMove \
+ -lclangParse \
+ -lclangQuery \
+ -lclangReorderFields \
+ -lclangRewrite \
+ -lclangRewriteFrontend \
+ -lclangSema \
+ -lclangSerialization \
+ -lclang_static \
+ -lclangStaticAnalyzerCheckers \
+ -lclangStaticAnalyzerCore \
+ -lclangStaticAnalyzerFrontend \
+ -lclangTidy \
+ -lclangTidyAndroidModule \
+ -lclangTidyBoostModule \
+ -lclangTidyBugproneModule \
+ -lclangTidyCERTModule \
+ -lclangTidyCppCoreGuidelinesModule \
+ -lclangTidyFuchsiaModule \
+ -lclangTidyGoogleModule \
+ -lclangTidyHICPPModule \
+ -lclangTidyLLVMModule \
+ -lclangTidyMiscModule \
+ -lclangTidyModernizeModule \
+ -lclangTidyMPIModule \
+ -lclangTidyObjCModule \
+ -lclangTidyPerformanceModule \
+ -lclangTidyPlugin \
+ -lclangTidyReadabilityModule \
+ -lclangTidyUtils \
+ -lclangTooling \
+ -lclangToolingASTDiff \
+ -lclangToolingCore \
+ -lclangToolingRefactor \
+ -lfindAllSymbols \
+ -lLLVMAArch64AsmParser \
+ -lLLVMAArch64AsmPrinter \
+ -lLLVMAArch64CodeGen \
+ -lLLVMAArch64Desc \
+ -lLLVMAArch64Disassembler \
+ -lLLVMAArch64Info \
+ -lLLVMAArch64Utils \
+ -lLLVMAMDGPUAsmParser \
+ -lLLVMAMDGPUAsmPrinter \
+ -lLLVMAMDGPUCodeGen \
+ -lLLVMAMDGPUDesc \
+ -lLLVMAMDGPUDisassembler \
+ -lLLVMAMDGPUInfo \
+ -lLLVMAMDGPUUtils \
+ -lLLVMAnalysis \
+ -lLLVMARMAsmParser \
+ -lLLVMARMAsmPrinter \
+ -lLLVMARMCodeGen \
+ -lLLVMARMDesc \
+ -lLLVMARMDisassembler \
+ -lLLVMARMInfo \
+ -lLLVMARMUtils \
+ -lLLVMAsmParser \
+ -lLLVMAsmPrinter \
+ -lLLVMBinaryFormat \
+ -lLLVMBitReader \
+ -lLLVMBitWriter \
+ -lLLVMBPFAsmParser \
+ -lLLVMBPFAsmPrinter \
+ -lLLVMBPFCodeGen \
+ -lLLVMBPFDesc \
+ -lLLVMBPFDisassembler \
+ -lLLVMBPFInfo \
+ -lLLVMCodeGen \
+ -lLLVMCore \
+ -lLLVMCoroutines \
+ -lLLVMCoverage \
+ -lLLVMDebugInfoCodeView \
+ -lLLVMDebugInfoDWARF \
+ -lLLVMDebugInfoMSF \
+ -lLLVMDebugInfoPDB \
+ -lLLVMDemangle \
+ -lLLVMDlltoolDriver \
+ -lLLVMExecutionEngine \
+ -lLLVMFuzzMutate \
+ -lLLVMGlobalISel \
+ -lLLVMHexagonAsmParser \
+ -lLLVMHexagonCodeGen \
+ -lLLVMHexagonDesc \
+ -lLLVMHexagonDisassembler \
+ -lLLVMHexagonInfo \
+ -lLLVMInstCombine \
+ -lLLVMInstrumentation \
+ -lLLVMInterpreter \
+ -lLLVMipo \
+ -lLLVMIRReader \
+ -lLLVMLanaiAsmParser \
+ -lLLVMLanaiAsmPrinter \
+ -lLLVMLanaiCodeGen \
+ -lLLVMLanaiDesc \
+ -lLLVMLanaiDisassembler \
+ -lLLVMLanaiInfo \
+ -lLLVMLibDriver \
+ -lLLVMLineEditor \
+ -lLLVMLinker \
+ -lLLVMLTO \
+ -lLLVMMC \
+ -lLLVMMCDisassembler \
+ -lLLVMMCJIT \
+ -lLLVMMCParser \
+ -lLLVMMipsAsmParser \
+ -lLLVMMipsAsmPrinter \
+ -lLLVMMipsCodeGen \
+ -lLLVMMipsDesc \
+ -lLLVMMipsDisassembler \
+ -lLLVMMipsInfo \
+ -lLLVMMIRParser \
+ -lLLVMMSP430AsmPrinter \
+ -lLLVMMSP430CodeGen \
+ -lLLVMMSP430Desc \
+ -lLLVMMSP430Info \
+ -lLLVMNVPTXAsmPrinter \
+ -lLLVMNVPTXCodeGen \
+ -lLLVMNVPTXDesc \
+ -lLLVMNVPTXInfo \
+ -lLLVMObjCARCOpts \
+ -lLLVMObject \
+ -lLLVMObjectYAML \
+ -lLLVMOption \
+ -lLLVMOrcJIT \
+ -lLLVMPasses \
+ -lLLVMPowerPCAsmParser \
+ -lLLVMPowerPCAsmPrinter \
+ -lLLVMPowerPCCodeGen \
+ -lLLVMPowerPCDesc \
+ -lLLVMPowerPCDisassembler \
+ -lLLVMPowerPCInfo \
+ -lLLVMProfileData \
+ -lLLVMRuntimeDyld \
+ -lLLVMScalarOpts \
+ -lLLVMSelectionDAG \
+ -lLLVMSparcAsmParser \
+ -lLLVMSparcAsmPrinter \
+ -lLLVMSparcCodeGen \
+ -lLLVMSparcDesc \
+ -lLLVMSparcDisassembler \
+ -lLLVMSparcInfo \
+ -lLLVMSupport \
+ -lLLVMSymbolize \
+ -lLLVMSystemZAsmParser \
+ -lLLVMSystemZAsmPrinter \
+ -lLLVMSystemZCodeGen \
+ -lLLVMSystemZDesc \
+ -lLLVMSystemZDisassembler \
+ -lLLVMSystemZInfo \
+ -lLLVMTableGen \
+ -lLLVMTarget \
+ -lLLVMTransformUtils \
+ -lLLVMVectorize \
+ -lLLVMWindowsManifest \
+ -lLLVMX86AsmParser \
+ -lLLVMX86AsmPrinter \
+ -lLLVMX86CodeGen \
+ -lLLVMX86Desc \
+ -lLLVMX86Disassembler \
+ -lLLVMX86Info \
+ -lLLVMX86Utils \
+ -lLLVMXCoreAsmPrinter \
+ -lLLVMXCoreCodeGen \
+ -lLLVMXCoreDesc \
+ -lLLVMXCoreDisassembler \
+ -lLLVMXCoreInfo \
+ -lLLVMXRay
+ !equals(QMAKE_HOST.os, Darwin): CLANG_LIBS+=-Wl,--end-group
+ }
!versionIsAtLeast($$CLANG_VERSION, "3.9.0") {
log("LLVM/Clang version >= 3.9.0 required, version provided: $${CLANG_VERSION}.$$escape_expand(\\n)")
diff --git a/src/qdoc/qdoc.pro b/src/qdoc/qdoc.pro
index e3b431aa9..1475a441d 100644
--- a/src/qdoc/qdoc.pro
+++ b/src/qdoc/qdoc.pro
@@ -14,6 +14,14 @@ qtHaveModule(qmldevtools-private) {
LIBS += $$CLANG_LIBS
!contains(QMAKE_DEFAULT_INCDIRS, $$CLANG_INCLUDEPATH): INCLUDEPATH += $$CLANG_INCLUDEPATH
+# Support static libclang linking on different platforms
+equals(QMAKE_HOST.os, Windows): {
+ DEFINES += CINDEX_LINKAGE=
+} else {
+ LIBS += -lz -ldl
+ equals(QMAKE_HOST.os, Darwin): LIBS += -lcurses -lm -lxml2
+}
+
!contains(QMAKE_DEFAULT_LIBDIRS, $$CLANG_LIBDIR):!disable_external_rpath: QMAKE_RPATHDIR += $$CLANG_LIBDIR
DEFINES += $$shell_quote(CLANG_RESOURCE_DIR=\"$${CLANG_LIBDIR}/clang/$${CLANG_VERSION}/include\")