diff options
author | Cristian Adam <cristian.adam@gmail.com> | 2020-04-24 21:56:32 +0200 |
---|---|---|
committer | Alexander Volkov <avolkov@astralinux.ru> | 2020-09-11 13:28:02 +0300 |
commit | 97f4de3866cbf389ebc318c5b7fa923b28ffbe53 (patch) | |
tree | 465d208ae9d11aaa460b716baab8615bc2ec840b | |
parent | a8708a3ee64dbf46a83ef572620758c26e2fc0de (diff) |
QDoc: Upgrade building with Clang 10
Clang 10 will allow the same way of building qdoc against a static or
a dynamic build of clang.
Qt will have prebuild packages of both, but not in one package, but
instead of two.
Due to Windows platform one cannot have both static and dynamic builds
of clang.
Change-Id: I9c6ecc9886263d797a5523063dafd223d8cb7585
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
(cherry picked from commit d9dc6dddb49439900695a5000e6ad19c935a535e)
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
-rw-r--r-- | src/qdoc/configure.pri | 285 |
1 files changed, 88 insertions, 197 deletions
diff --git a/src/qdoc/configure.pri b/src/qdoc/configure.pri index 670ad5e7b..4f3d77603 100644 --- a/src/qdoc/configure.pri +++ b/src/qdoc/configure.pri @@ -57,6 +57,7 @@ defineTest(qtConfTest_libclang) { # Assume libclang is installed on the target system isEmpty(LLVM_INSTALL_DIR) { llvmConfigCandidates = \ + llvm-config-10 \ llvm-config-9 \ llvm-config-8 \ llvm-config-7 \ @@ -137,206 +138,96 @@ defineTest(qtConfTest_libclang) { else: \ CLANG_LIBS += -lclang } else { + win32 { + versionIsAtLeast($$CLANG_VERSION, "10.0.0") { + CLANG_DEFINES += CINDEX_NO_EXPORTS + } else { + CLANG_DEFINES += CINDEX_LINKAGE= + } + } + !equals(QMAKE_HOST.os, Darwin):!msvc: CLANG_LIBS+=-Wl,--start-group + CLANG_LIBS += -lclangAnalysis \ + -lclangARCMigrate \ + -lclangAST \ + -lclangASTMatchers \ + -lclangBasic \ + -lclangCodeGen \ + -lclangCrossTU \ + -lclangDriver \ + -lclangDynamicASTMatchers \ + -lclangEdit \ + -lclangFormat \ + -lclangFrontend \ + -lclangFrontendTool \ + -lclangHandleCXX \ + -lclangIndex \ + -lclangLex \ + -lclangParse \ + -lclangRewrite \ + -lclangRewriteFrontend \ + -lclangSema \ + -lclangSerialization \ + -lclangStaticAnalyzerCheckers \ + -lclangStaticAnalyzerCore \ + -lclangStaticAnalyzerFrontend \ + -lclangTooling \ + -lclangToolingASTDiff \ + -lclangToolingCore + + versionIsAtLeast($$CLANG_VERSION, "10.0.0") { + equals(QMAKE_HOST.os, Windows): \ + CLANG_LIBS += -llibclang + else: \ + CLANG_LIBS += -lclang + + CLANG_LIBS += -lclangToolingInclusions + } else { + equals(QMAKE_HOST.os, Windows): \ + CLANG_LIBS += -llibclang_static + else: \ + CLANG_LIBS += -lclang_static + + CLANG_LIBS += \ + -lclangApplyReplacements \ + -lclangChangeNamespace \ + -lclangDaemon \ + -lclangIncludeFixer \ + -lclangIncludeFixerPlugin \ + -lclangMove \ + -lclangQuery \ + -lclangReorderFields \ + -lclangTidy \ + -lclangTidyAndroidModule \ + -lclangTidyBoostModule \ + -lclangTidyBugproneModule \ + -lclangTidyCERTModule \ + -lclangTidyCppCoreGuidelinesModule \ + -lclangTidyFuchsiaModule \ + -lclangTidyGoogleModule \ + -lclangTidyHICPPModule \ + -lclangTidyLLVMModule \ + -lclangTidyMiscModule \ + -lclangTidyModernizeModule \ + -lclangTidyMPIModule \ + -lclangTidyObjCModule \ + -lclangTidyPerformanceModule \ + -lclangTidyPlugin \ + -lclangTidyReadabilityModule \ + -lclangTidyUtils \ + -lclangToolingRefactor \ + -lfindAllSymbols + } + msvc { - CLANG_DEFINES += CINDEX_LINKAGE= - CLANG_LIBS += -llibclang_static -ladvapi32 -lshell32 -lMincore + LLVM_LIBS_STRING += $$system("$$llvm_config --libnames") } 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 - CLANG_LIBS += -lz - equals(QMAKE_HOST.os, Windows): CLANG_LIBS += -lpsapi -lshell32 -lole32 -luuid -ladvapi32 -lversion - else: CLANG_LIBS += -ldl - equals(QMAKE_HOST.os, Darwin): CLANG_LIBS += -lcurses -lm -lxml2 + LLVM_LIBS_STRING += $$system("$$llvm_config --libs") } + LLVM_LIBS_STRING += $$system("$$llvm_config --system-libs") + CLANG_LIBS += $$split(LLVM_LIBS_STRING, " ") + + !equals(QMAKE_HOST.os, Darwin):!msvc: CLANG_LIBS+=-Wl,--end-group + equals(QMAKE_HOST.os, Windows): CLANG_LIBS += -lversion } !versionIsAtLeast($$CLANG_VERSION, "3.9.0") { |