From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- sys-devel/clang/Manifest | 16 +- sys-devel/clang/clang-10.0.1.ebuild | 44 +- sys-devel/clang/clang-11.0.0.9999.ebuild | 42 +- sys-devel/clang/clang-11.0.0.ebuild | 424 +++++++++++ sys-devel/clang/clang-11.0.0_rc3.ebuild | 408 ----------- sys-devel/clang/clang-11.0.0_rc4.ebuild | 408 ----------- sys-devel/clang/clang-12.0.0.9999.ebuild | 45 +- ...-extra-Prevent-linking-to-duplicate-.a-li.patch | 788 --------------------- 8 files changed, 519 insertions(+), 1656 deletions(-) create mode 100644 sys-devel/clang/clang-11.0.0.ebuild delete mode 100644 sys-devel/clang/clang-11.0.0_rc3.ebuild delete mode 100644 sys-devel/clang/clang-11.0.0_rc4.ebuild delete mode 100644 sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch (limited to 'sys-devel/clang') diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest index cb5d22e5adb0..4d6d90df97e8 100644 --- a/sys-devel/clang/Manifest +++ b/sys-devel/clang/Manifest @@ -1,18 +1,18 @@ -AUX 10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch 23184 BLAKE2B 42bfc9401bceea6627703f7611aafe4708e4e745e47e8caa01fb8c7126524ef65e4c135cfd0541bc663bfc52fa8c47342f7f8de462abe283ec353b068d2e3532 SHA512 9561c9ab6dc62257b7626f7898afa667401522817ec57137641f8687549b0b8e531659a5afd5226dd7619126cc67f68235f628cbe639345277415343c4ca3650 AUX 10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch 970 BLAKE2B 564394bea7e9d5a056e7ce39b3e5261f1214637084c1669d34e4d9c3296582732765654ccc2dd76507df2d7fb8406da4185339134fa52bb5c38a2335a55b4f50 SHA512 41050092b31b2558b2d24665f4b5b5bde8b7d50b979c21d57c6e59119dcfa95c3616b873214a8e986268a20436c0895b702547adeb44d6d7576c89de1ba2d587 AUX 8.0.1/darwin_prefix-include-paths.patch 690 BLAKE2B cfb96eb259fb7d557d215be08ea3babcae6dc1353171fad7f297f787d476d28768c7c1bbe6efc7404ea638f1dc6b4b36e1c17e141faf82be623bbd96d5e09118 SHA512 5f8ecabaf43853964bffeb3953b205bea7e8928fd53637d01842723ac8344e19cc639f6f06c199f2be88b73e60b6eab1987bc5ee7dfeaea5e710eacab90f3533 +DIST 10.0.1-0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch 23184 BLAKE2B 42bfc9401bceea6627703f7611aafe4708e4e745e47e8caa01fb8c7126524ef65e4c135cfd0541bc663bfc52fa8c47342f7f8de462abe283ec353b068d2e3532 SHA512 9561c9ab6dc62257b7626f7898afa667401522817ec57137641f8687549b0b8e531659a5afd5226dd7619126cc67f68235f628cbe639345277415343c4ca3650 DIST llvm-10.0.0-manpages.tar.bz2 177084 BLAKE2B 16b38e60fce4d67ac602b317ea7089c095d46b9426ba9940041e65d7ab493f85dba2e94a4aeba7b7c52042f23825efcfcd32a57d306aaf05b4307061a5a8a368 SHA512 eac57ad218ff4c2b5a74e453a29192ee6e911152b668d8a9420b59529d5cae8aa241f2485b4a7ea304acbecc7ecb27391a77552080726432c2b7b59b95fc0bd7 +DIST llvm-10.0.1-manpages.tar.bz2 180157 BLAKE2B ddf5951c8f5a2a8a80726fd713e6c818c852851a2261e904b484afdb67ac55f2ce10976ca2ca5d81fe2bf4806a72cc7b59f4068741306491a4f39065ca8fb56e SHA512 d3c2470dbd0f3143d64b380f7534ebcacdcf4bc4f140a6014283150007fe615ebd86247cf13b2432165a681614849e8eaab69a8d077f7a51e4e040e28ed33ebc +DIST llvm-11.0.0-manpages.tar.bz2 179592 BLAKE2B d03dff5e7426f4c648d6112dee0fa7a91edf41584290c94c3f738fc65fa82fc6ef47b49c245fb0e741bdf267fc64534311194c476ece4b447649ba2250e61430 SHA512 1cf598f50c99a85a35b03398e4768cd1eafec9d602f788d401120adb91b3b59965216ed7102da26b7c2af7e1bbca4bca8f1d43bb687fcd8ed418e2f7076bdce4 DIST llvm-9.0.0-manpages.tar.bz2 158546 BLAKE2B eed6235698a0b5993affe305f7fd22cd4cf444adf931275a1685f2049a5f17cf2933907577d9ce142348a3c579769b0436aa2b5a9a953958504125a8c3e83b7d SHA512 64c8d18061eb2870b379a1df485be0b61eac07cb10b3f97347b54b2ee326faa63437ca04466776be282e120dd3f6147e14fffdd38ca370db85748fe5eb54d764 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151 -DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f -DIST llvmorg-11.0.0-rc4.tar.gz 122768150 BLAKE2B e92417b6e1775a10c196534518036de6393e3cb9e0e656d4f864e7870be8fb0dad3f4cf170345e653ba60f36172df117977d5dfebe3d9ee7ec2c160d3dc9c5cd SHA512 ed2aee9f6d0bb887f27840158e9f95d94c9ad3981a0388a33fcd3e405f5072134a02999075238b6a2b8803149aa08ac790214605b186c2cc2d4827ba53c00de1 +DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD clang-10.0.0.ebuild 10366 BLAKE2B af2fc9f454038f9fbf552a217b8534d3c6fe74cac3bb58b167c96bdf3249e213dd64fc469a0f29f51a0dbf3e46c1dfdfdfb7680288df4fa13b21021d9a120102 SHA512 8e83ea9ff93c88c0d9fe3db936a8f2949413cab513ab675e936146130885ee26234174985e7616f1a830c9cb9c2b1c560f686570909115c4fbaccd7ba911ca28 -EBUILD clang-10.0.1.ebuild 11405 BLAKE2B 9ab0e63b50869afd35272f6028ff129d145f22d57309681800329c5cf42a9423552f80f6d7678a5ccceb164d7c1a8f5250403318068c1ee496da1fabe0a8f4de SHA512 50e2f617e8a1186f8000da61bfc27f80981df9284708fe8eae9c144cb2b3bae536b45834965a7195f160feaa6f07f339249f7271aee29eecc5ad6c2198b433b3 -EBUILD clang-11.0.0.9999.ebuild 11181 BLAKE2B 6b8a194faf777d0be720847059c268146608e22e86c99e3d2e127017f86a29c8278ea7d527e37d310f8604b66d17722abea18f1ff079a56c27fd82fa228bc71e SHA512 08bf959cf04b092fbb75b278e6dff2bb45c18c2d8fe0166e9da9c12f376b8c4a3a28704c0ab65406de144c8ffe8d325dbba815b3047afc1bff127f21abc1aafa -EBUILD clang-11.0.0_rc3.ebuild 11181 BLAKE2B 6b8a194faf777d0be720847059c268146608e22e86c99e3d2e127017f86a29c8278ea7d527e37d310f8604b66d17722abea18f1ff079a56c27fd82fa228bc71e SHA512 08bf959cf04b092fbb75b278e6dff2bb45c18c2d8fe0166e9da9c12f376b8c4a3a28704c0ab65406de144c8ffe8d325dbba815b3047afc1bff127f21abc1aafa -EBUILD clang-11.0.0_rc4.ebuild 11181 BLAKE2B 6b8a194faf777d0be720847059c268146608e22e86c99e3d2e127017f86a29c8278ea7d527e37d310f8604b66d17722abea18f1ff079a56c27fd82fa228bc71e SHA512 08bf959cf04b092fbb75b278e6dff2bb45c18c2d8fe0166e9da9c12f376b8c4a3a28704c0ab65406de144c8ffe8d325dbba815b3047afc1bff127f21abc1aafa -EBUILD clang-12.0.0.9999.ebuild 11215 BLAKE2B 63ad3811c2942c22bd3b4a2e9b0550096175514f005e9e7df0730de06daed8b3cf0591a1b0cd1d098ed38491be6cb93f1e5ea2825d12254a61cb703b836dcebf SHA512 e290d7a08d01e8bdbe9e39613166e54c6b25f8d3084e444a47c215e11809ef4760fe7cdfd26955ce52bf17d5e341a3c7e825f96a0aae26c6b6a0754c18b88cbb +EBUILD clang-10.0.1.ebuild 11792 BLAKE2B cb044c8d17a8dbbe069acde03b2c91a8ea185f9a155b9d086c53a2b9c6e3730840f3122eaba006fa09e80c790ac00d0ba34d4def3e393850d8d4442a21a7b769 SHA512 3cc0f3ebdb0ca89fe201184bd7d7545a44a44969ed3142c2de7616e4ef6b120220323b90d62faf69a385e7426c08937661627db1434f1d6291032e50f7728097 +EBUILD clang-11.0.0.9999.ebuild 11494 BLAKE2B c02b255c4440b6c035bb52979cd4a14f1eb22264590b1f61a7f2d4a4ccd1ed79d768daef8264f91493f7a300ef75840a6f7aac55b7dfc4c5fd87b1af485afe96 SHA512 8a29ba42101bd3dfb6951a2947dc57945c24bd9276a8159ed82aec56fc432ffcab02db5fa9bdab744b1d73e1c96b49d02e520f7c451670ba051923b586eba62a +EBUILD clang-11.0.0.ebuild 11539 BLAKE2B fa949a59925b4e9d1044021a5b0346926c585056571bed6d66c720cd6c3a1e7a57f81e02132295a63346fa130a633eb7960d6cbb54c9cf2c0cf0cea96b1c6bdb SHA512 0ba29b7d29ad59b944540f324381cfb25512242c3e998d15fb62e5526dd6dc9625812562ef328a593cdf190d5a9bb8eafe4a922039aebe29aad4ae2e11fdfe0c +EBUILD clang-12.0.0.9999.ebuild 11429 BLAKE2B 8403c223a3fdeb851eb6be9c190730101013f370f9d9172ac03a08e93d342d729ed453ca527ccdfb12750c71813f1a9cb0a23298a8db5fc9ab3c38b9b2fa6130 SHA512 141978ca93729ace58bb0973dd25a8560411523daaab3e404a7b11c1ccf6908eec08939054700f1d2e7b7e2493e85a141eaf7c3022e30134bc24c0f0ac5b96a9 EBUILD clang-9.0.1.ebuild 8982 BLAKE2B 05319c777c4ecfd03a54bc9e14f322ad6f348a99554ebf8eb1e3a0a1b8c7aba5f3ba618fd3edb21022dd34f1cd4dca2c3f24b152b6f795b939a77c8959d27fa1 SHA512 f88f6c0dc7f1faed0f0d8310c9235a4d0d17352f710f28d9a8c7e47e28aaa43f7727e3e2a7e30334ffae7cb2e6df7769a543fd4c79a0ecb8a1f0a480b15fdb06 MISC metadata.xml 1336 BLAKE2B aaddc1c1193323466a545df21dfa53b637c3edff4f61cd55037d8327273457cf8d35cad7b92a2eef31acfb055a3e1ed93cb53a913b01eddf43b7b3dc6de880c4 SHA512 0538198df449cdf4d0cd00cb50d7c6883b06524419a29c4376cdcaed440fb84cfbd4983a1a025ae9a6e2fc5d91a4870bfcde587c493d8b617baec2214705601c diff --git a/sys-devel/clang/clang-10.0.1.ebuild b/sys-devel/clang/clang-10.0.1.ebuild index 96f2e13b419f..42c03f5c3c62 100644 --- a/sys-devel/clang/clang-10.0.1.ebuild +++ b/sys-devel/clang/clang-10.0.1.ebuild @@ -9,7 +9,9 @@ inherit cmake llvm llvm.org multilib-minimal pax-utils \ DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" +SRC_URI+=" https://dev.gentoo.org/~juippis/distfiles/tmp/10.0.1-0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch" LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_MANPAGES=pregenerated LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/{lit,llvm-lit,unittest} @@ -29,7 +31,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 ~arm arm64 ~ppc64 x86 ~amd64-linux" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux" IUSE="debug default-compiler-rt default-libcxx default-lld doc +static-analyzer test xml kernel_FreeBSD ${ALL_LLVM_TARGETS[*]}" REQUIRED_USE="${PYTHON_REQUIRED_USE} @@ -43,7 +45,7 @@ RDEPEND=" ${PYTHON_DEPS}" DEPEND="${RDEPEND}" BDEPEND=" - dev-python/sphinx + doc? ( dev-python/sphinx ) xml? ( virtual/pkgconfig ) ${PYTHON_DEPS}" RDEPEND="${RDEPEND} @@ -69,7 +71,7 @@ PDEPEND=" PATCHES=( # fix simultaneous linking to .a and dylib - "${FILESDIR}"/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch + "${DISTDIR}"/10.0.1-0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch "${FILESDIR}"/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch ) @@ -116,7 +118,7 @@ check_distribution_components() { ;; # conditional to USE=doc docs-clang-html|docs-clang-tools-html) - continue + use doc || continue ;; esac @@ -196,11 +198,15 @@ get_distribution_components() { find-all-symbols modularize pp-trace - - # manpages - docs-clang-man - docs-clang-tools-man ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-clang-man + docs-clang-tools-man + ) + fi use doc && out+=( docs-clang-html @@ -259,16 +265,23 @@ multilib_src_configure() { ) if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + mycmakeargs+=( # normally copied from LLVM_INCLUDE_DOCS but the latter # is lacking value in stand-alone builds - -DCLANG_INCLUDE_DOCS=ON - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON - -DLLVM_BUILD_DOCS=ON - -DLLVM_ENABLE_SPHINX=ON - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" - -DSPHINX_WARNINGS_AS_ERRORS=OFF + -DCLANG_INCLUDE_DOCS=${build_docs} + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} ) else mycmakeargs+=( @@ -389,6 +402,7 @@ multilib_src_install_all() { fi docompress "/usr/lib/llvm/${SLOT}/share/man" + llvm_install_manpages # match 'html' non-compression use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" # +x for some reason; TODO: investigate diff --git a/sys-devel/clang/clang-11.0.0.9999.ebuild b/sys-devel/clang/clang-11.0.0.9999.ebuild index 8f5be4425a42..a66c3ab97393 100644 --- a/sys-devel/clang/clang-11.0.0.9999.ebuild +++ b/sys-devel/clang/clang-11.0.0.9999.ebuild @@ -10,6 +10,7 @@ inherit cmake llvm llvm.org multilib-minimal pax-utils \ DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_MANPAGES=build LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/{lit,llvm-lit,unittest} @@ -44,7 +45,8 @@ RDEPEND=" ${PYTHON_DEPS}" DEPEND="${RDEPEND}" BDEPEND=" - dev-python/sphinx + >=dev-util/cmake-3.16 + doc? ( dev-python/sphinx ) xml? ( virtual/pkgconfig ) ${PYTHON_DEPS}" RDEPEND="${RDEPEND} @@ -111,7 +113,7 @@ check_distribution_components() { ;; # conditional to USE=doc docs-clang-html|docs-clang-tools-html) - continue + use doc || continue ;; esac @@ -190,11 +192,15 @@ get_distribution_components() { find-all-symbols modularize pp-trace - - # manpages - docs-clang-man - docs-clang-tools-man ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-clang-man + docs-clang-tools-man + ) + fi use doc && out+=( docs-clang-html @@ -246,6 +252,8 @@ multilib_src_configure() { -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + + -DPython3_EXECUTABLE="${PYTHON}" ) use test && mycmakeargs+=( -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" @@ -253,16 +261,23 @@ multilib_src_configure() { ) if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + mycmakeargs+=( # normally copied from LLVM_INCLUDE_DOCS but the latter # is lacking value in stand-alone builds - -DCLANG_INCLUDE_DOCS=ON - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON - -DLLVM_BUILD_DOCS=ON - -DLLVM_ENABLE_SPHINX=ON - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" - -DSPHINX_WARNINGS_AS_ERRORS=OFF + -DCLANG_INCLUDE_DOCS=${build_docs} + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} ) else mycmakeargs+=( @@ -383,6 +398,7 @@ multilib_src_install_all() { fi docompress "/usr/lib/llvm/${SLOT}/share/man" + llvm_install_manpages # match 'html' non-compression use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" # +x for some reason; TODO: investigate diff --git a/sys-devel/clang/clang-11.0.0.ebuild b/sys-devel/clang/clang-11.0.0.ebuild new file mode 100644 index 000000000000..a7451bfd4bde --- /dev/null +++ b/sys-devel/clang/clang-11.0.0.ebuild @@ -0,0 +1,424 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6..9} ) +inherit cmake llvm llvm.org multilib-minimal pax-utils \ + python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" +LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_MANPAGES=pregenerated +LLVM_TEST_COMPONENTS=( + llvm/lib/Testing/Support + llvm/utils/{lit,llvm-lit,unittest} + llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} +) +llvm.org_set_globals + +# Keep in sync with sys-devel/llvm +ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore + "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="$(ver_cut 1)" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux" +IUSE="debug default-compiler-rt default-libcxx default-lld + doc +static-analyzer test xml kernel_FreeBSD ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${LLVM_TARGET_USEDEPS// /,},${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + ${PYTHON_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-util/cmake-3.16 + doc? ( dev-python/sphinx ) + xml? ( virtual/pkgconfig ) + ${PYTHON_DEPS}" +RDEPEND="${RDEPEND} + !/dev/null || die + fi +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # common stuff + clang-cmake-exports + clang-headers + clang-resource-headers + libclang-headers + + # libs + clang-cpp + libclang + ) + + if multilib_is_native_abi; then + out+=( + # common stuff + bash-autocomplete + libclang-python-bindings + + # tools + c-index-test + clang + clang-format + clang-offload-bundler + clang-offload-wrapper + clang-refactor + clang-rename + clang-scan-deps + diagtool + hmaptool + + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-fixer + clang-move + clang-query + clang-reorder-fields + clang-tidy + clangd + find-all-symbols + modularize + pp-trace + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-clang-man + docs-clang-tools-man + ) + fi + + use doc && out+=( + docs-clang-html + docs-clang-tools-html + ) + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local llvm_version=$(llvm-config --version) || die + local clang_version=$(ver_cut 1-3 "${llvm_version}") + + local mycmakeargs=( + -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm" + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}" + + -DBUILD_SHARED_LIBS=OFF + -DCLANG_LINK_CLANG_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # override default stdlib and rtlib + -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "") + -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "") + -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "") + + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + use test && mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + # normally copied from LLVM_INCLUDE_DOCS but the latter + # is lacking value in stand-alone builds + -DCLANG_INCLUDE_DOCS=${build_docs} + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if [[ -n ${EPREFIX} ]]; then + mycmakeargs+=( + -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" + ) + fi + + if tc-is-cross-compiler; then + [[ -x "/usr/bin/clang-tblgen" ]] \ + || die "/usr/bin/clang-tblgen not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DCLANG_TABLEGEN=/usr/bin/clang-tblgen + ) + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + cmake_build distribution + + # provide a symlink for tests + if [[ ! -L ${WORKDIR}/lib/clang ]]; then + mkdir -p "${WORKDIR}"/lib || die + ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check-clang + multilib_is_native_abi && + cmake_build check-clang-tools check-clangd +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die + # move (remaining) wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die + + # Apply CHOST and version suffix to clang tools + # note: we use two version components here (vs 3 in runtime path) + local llvm_version=$(llvm-config --version) || die + local clang_version=$(ver_cut 1 "${llvm_version}") + local clang_full_version=$(ver_cut 1-3 "${llvm_version}") + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X + # - clang -> clang-X + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X + # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X + # - clang, clang++, clang-cl, clang-cpp -> clang*-X + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die + dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}" + dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${clang_version}" \ + "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}" + dosym "${abi_chost}-${i}-${clang_version}" \ + "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}" + done + done + + # Remove unnecessary headers on FreeBSD, bug #417171 + if use kernel_FreeBSD; then + rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die + fi +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view + fi + + docompress "/usr/lib/llvm/${SLOT}/share/man" + llvm_install_manpages + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1" +} + +pkg_postinst() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + elog "You can find additional utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang" + elog "Some of them are vim integration scripts (with instructions inside)." + elog "The run-clang-tidy.py script requires the following additional package:" + elog " dev-python/pyyaml" +} + +pkg_postrm() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} diff --git a/sys-devel/clang/clang-11.0.0_rc3.ebuild b/sys-devel/clang/clang-11.0.0_rc3.ebuild deleted file mode 100644 index 8f5be4425a42..000000000000 --- a/sys-devel/clang/clang-11.0.0_rc3.ebuild +++ /dev/null @@ -1,408 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -inherit cmake llvm llvm.org multilib-minimal pax-utils \ - python-single-r1 toolchain-funcs - -DESCRIPTION="C language family frontend for LLVM" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( clang clang-tools-extra ) -LLVM_TEST_COMPONENTS=( - llvm/lib/Testing/Support - llvm/utils/{lit,llvm-lit,unittest} - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} -) -llvm.org_set_globals - -# Keep in sync with sys-devel/llvm -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore - "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -# MSVCSetupApi.h: MIT -# sorttable.js: MIT - -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" -SLOT="$(ver_cut 1)" -KEYWORDS="" -IUSE="debug default-compiler-rt default-libcxx default-lld - doc +static-analyzer test xml kernel_FreeBSD ${ALL_LLVM_TARGETS[*]}" -REQUIRED_USE="${PYTHON_REQUIRED_USE} - || ( ${ALL_LLVM_TARGETS[*]} )" -RESTRICT="!test? ( test )" - -RDEPEND=" - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${LLVM_TARGET_USEDEPS// /,},${MULTILIB_USEDEP}] - static-analyzer? ( dev-lang/perl:* ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) - ${PYTHON_DEPS}" -DEPEND="${RDEPEND}" -BDEPEND=" - dev-python/sphinx - xml? ( virtual/pkgconfig ) - ${PYTHON_DEPS}" -RDEPEND="${RDEPEND} - !/dev/null || die - fi -} - -get_distribution_components() { - local sep=${1-;} - - local out=( - # common stuff - clang-cmake-exports - clang-headers - clang-resource-headers - libclang-headers - - # libs - clang-cpp - libclang - ) - - if multilib_is_native_abi; then - out+=( - # common stuff - bash-autocomplete - libclang-python-bindings - - # tools - c-index-test - clang - clang-format - clang-offload-bundler - clang-offload-wrapper - clang-refactor - clang-rename - clang-scan-deps - diagtool - hmaptool - - # extra tools - clang-apply-replacements - clang-change-namespace - clang-doc - clang-include-fixer - clang-move - clang-query - clang-reorder-fields - clang-tidy - clangd - find-all-symbols - modularize - pp-trace - - # manpages - docs-clang-man - docs-clang-tools-man - ) - - use doc && out+=( - docs-clang-html - docs-clang-tools-html - ) - - use static-analyzer && out+=( - clang-check - clang-extdef-mapping - scan-build - scan-view - ) - fi - - printf "%s${sep}" "${out[@]}" -} - -multilib_src_configure() { - local llvm_version=$(llvm-config --version) || die - local clang_version=$(ver_cut 1-3 "${llvm_version}") - - local mycmakeargs=( - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm" - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - # relative to bindir - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}" - - -DBUILD_SHARED_LIBS=OFF - -DCLANG_LINK_CLANG_DYLIB=ON - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) - - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" - -DLLVM_BUILD_TESTS=$(usex test) - - # these are not propagated reliably, so redefine them - -DLLVM_ENABLE_EH=ON - -DLLVM_ENABLE_RTTI=ON - - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) - # libgomp support fails to find headers without explicit -I - # furthermore, it provides only syntax checking - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp - - # override default stdlib and rtlib - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "") - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "") - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "") - - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) - ) - use test && mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - ) - - if multilib_is_native_abi; then - mycmakeargs+=( - # normally copied from LLVM_INCLUDE_DOCS but the latter - # is lacking value in stand-alone builds - -DCLANG_INCLUDE_DOCS=ON - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON - -DLLVM_BUILD_DOCS=ON - -DLLVM_ENABLE_SPHINX=ON - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" - -DSPHINX_WARNINGS_AS_ERRORS=OFF - ) - else - mycmakeargs+=( - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF - ) - fi - - if [[ -n ${EPREFIX} ]]; then - mycmakeargs+=( - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" - ) - fi - - if tc-is-cross-compiler; then - [[ -x "/usr/bin/clang-tblgen" ]] \ - || die "/usr/bin/clang-tblgen not found or usable" - mycmakeargs+=( - -DCMAKE_CROSSCOMPILING=ON - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen - ) - fi - - # LLVM can have very high memory consumption while linking, - # exhausting the limit on 32-bit linker executable - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" - - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake_src_configure - - multilib_is_native_abi && check_distribution_components -} - -multilib_src_compile() { - cmake_build distribution - - # provide a symlink for tests - if [[ ! -L ${WORKDIR}/lib/clang ]]; then - mkdir -p "${WORKDIR}"/lib || die - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die - fi -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - cmake_build check-clang - multilib_is_native_abi && - cmake_build check-clang-tools check-clangd -} - -src_install() { - MULTILIB_WRAPPED_HEADERS=( - /usr/include/clang/Config/config.h - ) - - multilib-minimal_src_install - - # Move runtime headers to /usr/lib/clang, where they belong - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die - # move (remaining) wrapped headers back - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die - - # Apply CHOST and version suffix to clang tools - # note: we use two version components here (vs 3 in runtime path) - local llvm_version=$(llvm-config --version) || die - local clang_version=$(ver_cut 1 "${llvm_version}") - local clang_full_version=$(ver_cut 1-3 "${llvm_version}") - local clang_tools=( clang clang++ clang-cl clang-cpp ) - local abi i - - # cmake gives us: - # - clang-X - # - clang -> clang-X - # - clang++, clang-cl, clang-cpp -> clang - # we want to have: - # - clang-X - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X - # - clang, clang++, clang-cl, clang-cpp -> clang*-X - # also in CHOST variant - for i in "${clang_tools[@]:1}"; do - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}" - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}" - done - - # now create target symlinks for all supported ABIs - for abi in $(get_all_abis); do - local abi_chost=$(get_abi_CHOST "${abi}") - for i in "${clang_tools[@]}"; do - dosym "${i}-${clang_version}" \ - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}" - dosym "${abi_chost}-${i}-${clang_version}" \ - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}" - done - done - - # Remove unnecessary headers on FreeBSD, bug #417171 - if use kernel_FreeBSD; then - rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die - fi -} - -multilib_src_install() { - DESTDIR=${D} cmake_build install-distribution - - # move headers to /usr/include for wrapping & ABI mismatch checks - # (also drop the version suffix from runtime headers) - rm -rf "${ED}"/usr/include || die - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die -} - -multilib_src_install_all() { - python_fix_shebang "${ED}" - if use static-analyzer; then - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view - fi - - docompress "/usr/lib/llvm/${SLOT}/share/man" - # match 'html' non-compression - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" - # +x for some reason; TODO: investigate - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1" -} - -pkg_postinst() { - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then - eselect compiler-shadow update all - fi - - elog "You can find additional utility scripts in:" - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang" - elog "Some of them are vim integration scripts (with instructions inside)." - elog "The run-clang-tidy.py script requires the following additional package:" - elog " dev-python/pyyaml" -} - -pkg_postrm() { - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then - eselect compiler-shadow clean all - fi -} diff --git a/sys-devel/clang/clang-11.0.0_rc4.ebuild b/sys-devel/clang/clang-11.0.0_rc4.ebuild deleted file mode 100644 index 8f5be4425a42..000000000000 --- a/sys-devel/clang/clang-11.0.0_rc4.ebuild +++ /dev/null @@ -1,408 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -inherit cmake llvm llvm.org multilib-minimal pax-utils \ - python-single-r1 toolchain-funcs - -DESCRIPTION="C language family frontend for LLVM" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( clang clang-tools-extra ) -LLVM_TEST_COMPONENTS=( - llvm/lib/Testing/Support - llvm/utils/{lit,llvm-lit,unittest} - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} -) -llvm.org_set_globals - -# Keep in sync with sys-devel/llvm -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore - "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -# MSVCSetupApi.h: MIT -# sorttable.js: MIT - -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" -SLOT="$(ver_cut 1)" -KEYWORDS="" -IUSE="debug default-compiler-rt default-libcxx default-lld - doc +static-analyzer test xml kernel_FreeBSD ${ALL_LLVM_TARGETS[*]}" -REQUIRED_USE="${PYTHON_REQUIRED_USE} - || ( ${ALL_LLVM_TARGETS[*]} )" -RESTRICT="!test? ( test )" - -RDEPEND=" - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${LLVM_TARGET_USEDEPS// /,},${MULTILIB_USEDEP}] - static-analyzer? ( dev-lang/perl:* ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) - ${PYTHON_DEPS}" -DEPEND="${RDEPEND}" -BDEPEND=" - dev-python/sphinx - xml? ( virtual/pkgconfig ) - ${PYTHON_DEPS}" -RDEPEND="${RDEPEND} - !/dev/null || die - fi -} - -get_distribution_components() { - local sep=${1-;} - - local out=( - # common stuff - clang-cmake-exports - clang-headers - clang-resource-headers - libclang-headers - - # libs - clang-cpp - libclang - ) - - if multilib_is_native_abi; then - out+=( - # common stuff - bash-autocomplete - libclang-python-bindings - - # tools - c-index-test - clang - clang-format - clang-offload-bundler - clang-offload-wrapper - clang-refactor - clang-rename - clang-scan-deps - diagtool - hmaptool - - # extra tools - clang-apply-replacements - clang-change-namespace - clang-doc - clang-include-fixer - clang-move - clang-query - clang-reorder-fields - clang-tidy - clangd - find-all-symbols - modularize - pp-trace - - # manpages - docs-clang-man - docs-clang-tools-man - ) - - use doc && out+=( - docs-clang-html - docs-clang-tools-html - ) - - use static-analyzer && out+=( - clang-check - clang-extdef-mapping - scan-build - scan-view - ) - fi - - printf "%s${sep}" "${out[@]}" -} - -multilib_src_configure() { - local llvm_version=$(llvm-config --version) || die - local clang_version=$(ver_cut 1-3 "${llvm_version}") - - local mycmakeargs=( - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm" - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - # relative to bindir - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}" - - -DBUILD_SHARED_LIBS=OFF - -DCLANG_LINK_CLANG_DYLIB=ON - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) - - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" - -DLLVM_BUILD_TESTS=$(usex test) - - # these are not propagated reliably, so redefine them - -DLLVM_ENABLE_EH=ON - -DLLVM_ENABLE_RTTI=ON - - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) - # libgomp support fails to find headers without explicit -I - # furthermore, it provides only syntax checking - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp - - # override default stdlib and rtlib - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "") - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "") - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "") - - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) - ) - use test && mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - ) - - if multilib_is_native_abi; then - mycmakeargs+=( - # normally copied from LLVM_INCLUDE_DOCS but the latter - # is lacking value in stand-alone builds - -DCLANG_INCLUDE_DOCS=ON - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON - -DLLVM_BUILD_DOCS=ON - -DLLVM_ENABLE_SPHINX=ON - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" - -DSPHINX_WARNINGS_AS_ERRORS=OFF - ) - else - mycmakeargs+=( - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF - ) - fi - - if [[ -n ${EPREFIX} ]]; then - mycmakeargs+=( - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" - ) - fi - - if tc-is-cross-compiler; then - [[ -x "/usr/bin/clang-tblgen" ]] \ - || die "/usr/bin/clang-tblgen not found or usable" - mycmakeargs+=( - -DCMAKE_CROSSCOMPILING=ON - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen - ) - fi - - # LLVM can have very high memory consumption while linking, - # exhausting the limit on 32-bit linker executable - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" - - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake_src_configure - - multilib_is_native_abi && check_distribution_components -} - -multilib_src_compile() { - cmake_build distribution - - # provide a symlink for tests - if [[ ! -L ${WORKDIR}/lib/clang ]]; then - mkdir -p "${WORKDIR}"/lib || die - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die - fi -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - cmake_build check-clang - multilib_is_native_abi && - cmake_build check-clang-tools check-clangd -} - -src_install() { - MULTILIB_WRAPPED_HEADERS=( - /usr/include/clang/Config/config.h - ) - - multilib-minimal_src_install - - # Move runtime headers to /usr/lib/clang, where they belong - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die - # move (remaining) wrapped headers back - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die - - # Apply CHOST and version suffix to clang tools - # note: we use two version components here (vs 3 in runtime path) - local llvm_version=$(llvm-config --version) || die - local clang_version=$(ver_cut 1 "${llvm_version}") - local clang_full_version=$(ver_cut 1-3 "${llvm_version}") - local clang_tools=( clang clang++ clang-cl clang-cpp ) - local abi i - - # cmake gives us: - # - clang-X - # - clang -> clang-X - # - clang++, clang-cl, clang-cpp -> clang - # we want to have: - # - clang-X - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X - # - clang, clang++, clang-cl, clang-cpp -> clang*-X - # also in CHOST variant - for i in "${clang_tools[@]:1}"; do - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}" - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}" - done - - # now create target symlinks for all supported ABIs - for abi in $(get_all_abis); do - local abi_chost=$(get_abi_CHOST "${abi}") - for i in "${clang_tools[@]}"; do - dosym "${i}-${clang_version}" \ - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}" - dosym "${abi_chost}-${i}-${clang_version}" \ - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}" - done - done - - # Remove unnecessary headers on FreeBSD, bug #417171 - if use kernel_FreeBSD; then - rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die - fi -} - -multilib_src_install() { - DESTDIR=${D} cmake_build install-distribution - - # move headers to /usr/include for wrapping & ABI mismatch checks - # (also drop the version suffix from runtime headers) - rm -rf "${ED}"/usr/include || die - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die -} - -multilib_src_install_all() { - python_fix_shebang "${ED}" - if use static-analyzer; then - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view - fi - - docompress "/usr/lib/llvm/${SLOT}/share/man" - # match 'html' non-compression - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" - # +x for some reason; TODO: investigate - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1" -} - -pkg_postinst() { - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then - eselect compiler-shadow update all - fi - - elog "You can find additional utility scripts in:" - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang" - elog "Some of them are vim integration scripts (with instructions inside)." - elog "The run-clang-tidy.py script requires the following additional package:" - elog " dev-python/pyyaml" -} - -pkg_postrm() { - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then - eselect compiler-shadow clean all - fi -} diff --git a/sys-devel/clang/clang-12.0.0.9999.ebuild b/sys-devel/clang/clang-12.0.0.9999.ebuild index 1f2944a6e1d5..a186693b4e0e 100644 --- a/sys-devel/clang/clang-12.0.0.9999.ebuild +++ b/sys-devel/clang/clang-12.0.0.9999.ebuild @@ -10,6 +10,7 @@ inherit cmake llvm llvm.org multilib-minimal pax-utils \ DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_MANPAGES=build LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/{lit,llvm-lit,unittest} @@ -18,7 +19,7 @@ LLVM_TEST_COMPONENTS=( llvm.org_set_globals # Keep in sync with sys-devel/llvm -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) +ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY VE ) ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) @@ -44,7 +45,8 @@ RDEPEND=" ${PYTHON_DEPS}" DEPEND="${RDEPEND}" BDEPEND=" - dev-python/sphinx + >=dev-util/cmake-3.16 + doc? ( dev-python/sphinx ) xml? ( virtual/pkgconfig ) ${PYTHON_DEPS}" RDEPEND="${RDEPEND} @@ -109,7 +111,7 @@ check_distribution_components() { ;; # conditional to USE=doc docs-clang-html|docs-clang-tools-html) - continue + use doc || continue ;; esac @@ -188,11 +190,15 @@ get_distribution_components() { find-all-symbols modularize pp-trace - - # manpages - docs-clang-man - docs-clang-tools-man ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-clang-man + docs-clang-tools-man + ) + fi use doc && out+=( docs-clang-html @@ -244,6 +250,8 @@ multilib_src_configure() { -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + + -DPython3_EXECUTABLE="${PYTHON}" ) use test && mycmakeargs+=( -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" @@ -251,17 +259,21 @@ multilib_src_configure() { ) if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi mycmakeargs+=( -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra - # normally copied from LLVM_INCLUDE_DOCS but the latter - # is lacking value in stand-alone builds - -DCLANG_INCLUDE_DOCS=ON - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON - -DLLVM_BUILD_DOCS=ON - -DLLVM_ENABLE_SPHINX=ON - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" - -DSPHINX_WARNINGS_AS_ERRORS=OFF + -DCLANG_INCLUDE_DOCS=${build_docs} + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} ) else mycmakeargs+=( @@ -382,6 +394,7 @@ multilib_src_install_all() { fi docompress "/usr/lib/llvm/${SLOT}/share/man" + llvm_install_manpages # match 'html' non-compression use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" # +x for some reason; TODO: investigate diff --git a/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch b/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch deleted file mode 100644 index d01bd5d51e23..000000000000 --- a/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch +++ /dev/null @@ -1,788 +0,0 @@ -From 248d706ca72666a203a24b84406be430ccf40558 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Tue, 16 Jun 2020 20:43:55 +0200 -Subject: [PATCH 3/4] [clang-tools-extra] Prevent linking to duplicate .a libs - and dylib - -Fix various tool libraries not to link to clang's .a libraries and dylib -simultaneously. This may cause breakage, in particular through -duplicate command-line option declarations. ---- - .../clang-apply-replacements/CMakeLists.txt | 4 +++- - .../clang-change-namespace/CMakeLists.txt | 4 +++- - clang-tools-extra/clang-doc/CMakeLists.txt | 4 +++- - .../clang-include-fixer/CMakeLists.txt | 6 +++++- - .../find-all-symbols/CMakeLists.txt | 4 +++- - clang-tools-extra/clang-move/CMakeLists.txt | 4 +++- - clang-tools-extra/clang-query/CMakeLists.txt | 4 +++- - .../clang-reorder-fields/CMakeLists.txt | 4 +++- - clang-tools-extra/clang-tidy/CMakeLists.txt | 7 +++++-- - clang-tools-extra/clang-tidy/abseil/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/android/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/boost/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/bugprone/CMakeLists.txt | 10 +++++++--- - clang-tools-extra/clang-tidy/cert/CMakeLists.txt | 12 ++++++++---- - .../clang-tidy/cppcoreguidelines/CMakeLists.txt | 14 +++++++++----- - clang-tools-extra/clang-tidy/darwin/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/fuchsia/CMakeLists.txt | 10 +++++++--- - clang-tools-extra/clang-tidy/google/CMakeLists.txt | 10 +++++++--- - clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt | 14 +++++++++----- - .../clang-tidy/linuxkernel/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/llvm/CMakeLists.txt | 10 +++++++--- - clang-tools-extra/clang-tidy/misc/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/modernize/CMakeLists.txt | 10 +++++++--- - clang-tools-extra/clang-tidy/mpi/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/objc/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/openmp/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/performance/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/plugin/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/portability/CMakeLists.txt | 8 ++++++-- - .../clang-tidy/readability/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clang-tidy/utils/CMakeLists.txt | 6 +++++- - clang-tools-extra/clang-tidy/zircon/CMakeLists.txt | 8 ++++++-- - clang-tools-extra/clangd/CMakeLists.txt | 11 +++++++---- - clang-tools-extra/clangd/unittests/CMakeLists.txt | 1 - - 34 files changed, 188 insertions(+), 73 deletions(-) - -diff --git a/clang-tools-extra/clang-apply-replacements/CMakeLists.txt b/clang-tools-extra/clang-apply-replacements/CMakeLists.txt -index 5bfdcb487e1..27383b488e4 100644 ---- a/clang-tools-extra/clang-apply-replacements/CMakeLists.txt -+++ b/clang-tools-extra/clang-apply-replacements/CMakeLists.txt -@@ -4,8 +4,10 @@ set(LLVM_LINK_COMPONENTS - - add_clang_library(clangApplyReplacements - lib/Tooling/ApplyReplacements.cpp -+) - -- LINK_LIBS -+clang_target_link_libraries(clangApplyReplacements -+ PRIVATE - clangAST - clangBasic - clangRewrite -diff --git a/clang-tools-extra/clang-change-namespace/CMakeLists.txt b/clang-tools-extra/clang-change-namespace/CMakeLists.txt -index 178306423eb..dccfd7c0673 100644 ---- a/clang-tools-extra/clang-change-namespace/CMakeLists.txt -+++ b/clang-tools-extra/clang-change-namespace/CMakeLists.txt -@@ -4,8 +4,10 @@ set(LLVM_LINK_COMPONENTS - - add_clang_library(clangChangeNamespace - ChangeNamespace.cpp -+) - -- LINK_LIBS -+clang_target_link_libraries(clangChangeNamespace -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -diff --git a/clang-tools-extra/clang-doc/CMakeLists.txt b/clang-tools-extra/clang-doc/CMakeLists.txt -index c301ad5afac..6f303a67c9a 100644 ---- a/clang-tools-extra/clang-doc/CMakeLists.txt -+++ b/clang-tools-extra/clang-doc/CMakeLists.txt -@@ -14,8 +14,10 @@ add_clang_library(clangDoc - Representation.cpp - Serialize.cpp - YAMLGenerator.cpp -+) - -- LINK_LIBS -+clang_target_link_libraries(clangDoc -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers -diff --git a/clang-tools-extra/clang-include-fixer/CMakeLists.txt b/clang-tools-extra/clang-include-fixer/CMakeLists.txt -index f27f7403ea6..d8685cb2075 100644 ---- a/clang-tools-extra/clang-include-fixer/CMakeLists.txt -+++ b/clang-tools-extra/clang-include-fixer/CMakeLists.txt -@@ -11,6 +11,11 @@ add_clang_library(clangIncludeFixer - YamlSymbolIndex.cpp - - LINK_LIBS -+ findAllSymbols -+ ) -+ -+clang_target_link_libraries(clangIncludeFixer -+ PRIVATE - clangAST - clangBasic - clangFormat -@@ -21,7 +26,6 @@ add_clang_library(clangIncludeFixer - clangSerialization - clangTooling - clangToolingCore -- findAllSymbols - ) - - add_subdirectory(plugin) -diff --git a/clang-tools-extra/clang-include-fixer/find-all-symbols/CMakeLists.txt b/clang-tools-extra/clang-include-fixer/find-all-symbols/CMakeLists.txt -index c5fe19bfdbd..06a2324e918 100644 ---- a/clang-tools-extra/clang-include-fixer/find-all-symbols/CMakeLists.txt -+++ b/clang-tools-extra/clang-include-fixer/find-all-symbols/CMakeLists.txt -@@ -11,8 +11,10 @@ add_clang_library(findAllSymbols - PragmaCommentHandler.cpp - STLPostfixHeaderMap.cpp - SymbolInfo.cpp -+ ) - -- LINK_LIBS -+clang_target_link_libraries(findAllSymbols -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -diff --git a/clang-tools-extra/clang-move/CMakeLists.txt b/clang-tools-extra/clang-move/CMakeLists.txt -index c63127ea325..9ea409932da 100644 ---- a/clang-tools-extra/clang-move/CMakeLists.txt -+++ b/clang-tools-extra/clang-move/CMakeLists.txt -@@ -5,8 +5,10 @@ set(LLVM_LINK_COMPONENTS - add_clang_library(clangMove - Move.cpp - HelperDeclRefGraph.cpp -+ ) - -- LINK_LIBS -+clang_target_link_libraries(clangMove -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers -diff --git a/clang-tools-extra/clang-query/CMakeLists.txt b/clang-tools-extra/clang-query/CMakeLists.txt -index d1d68d502e3..bc76bae9c0e 100644 ---- a/clang-tools-extra/clang-query/CMakeLists.txt -+++ b/clang-tools-extra/clang-query/CMakeLists.txt -@@ -6,8 +6,10 @@ set(LLVM_LINK_COMPONENTS - add_clang_library(clangQuery - Query.cpp - QueryParser.cpp -+ ) - -- LINK_LIBS -+clang_target_link_libraries(clangQuery -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -diff --git a/clang-tools-extra/clang-reorder-fields/CMakeLists.txt b/clang-tools-extra/clang-reorder-fields/CMakeLists.txt -index 9c75d785cc9..e555fd5cdf0 100644 ---- a/clang-tools-extra/clang-reorder-fields/CMakeLists.txt -+++ b/clang-tools-extra/clang-reorder-fields/CMakeLists.txt -@@ -2,8 +2,10 @@ set(LLVM_LINK_COMPONENTS support) - - add_clang_library(clangReorderFields - ReorderFieldsAction.cpp -+) - -- LINK_LIBS -+clang_target_link_libraries(clangReorderFields -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -diff --git a/clang-tools-extra/clang-tidy/CMakeLists.txt b/clang-tools-extra/clang-tidy/CMakeLists.txt -index 6dadb271771..329df19f331 100644 ---- a/clang-tools-extra/clang-tidy/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/CMakeLists.txt -@@ -14,8 +14,10 @@ add_clang_library(clangTidy - - DEPENDS - ClangSACheckers -+ ) - -- LINK_LIBS -+clang_target_link_libraries(clangTidy -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers -@@ -31,7 +33,8 @@ add_clang_library(clangTidy - ) - - if(CLANG_ENABLE_STATIC_ANALYZER) -- target_link_libraries(clangTidy PRIVATE -+ clang_target_link_libraries(clangTidy -+ PRIVATE - clangStaticAnalyzerCore - clangStaticAnalyzerFrontend - ) -diff --git a/clang-tools-extra/clang-tidy/abseil/CMakeLists.txt b/clang-tools-extra/clang-tidy/abseil/CMakeLists.txt -index 3f88da6233f..0f040e56a05 100644 ---- a/clang-tools-extra/clang-tidy/abseil/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/abseil/CMakeLists.txt -@@ -22,11 +22,15 @@ add_clang_library(clangTidyAbseilModule - UpgradeDurationConversionsCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyAbseilModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/android/CMakeLists.txt b/clang-tools-extra/clang-tidy/android/CMakeLists.txt -index 9d04003d9bb..d29adc610c8 100644 ---- a/clang-tools-extra/clang-tidy/android/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/android/CMakeLists.txt -@@ -20,10 +20,14 @@ add_clang_library(clangTidyAndroidModule - ComparisonInTempFailureRetryCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyAndroidModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/boost/CMakeLists.txt b/clang-tools-extra/clang-tidy/boost/CMakeLists.txt -index 059f6e91eca..481a709600c 100644 ---- a/clang-tools-extra/clang-tidy/boost/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/boost/CMakeLists.txt -@@ -5,10 +5,14 @@ add_clang_library(clangTidyBoostModule - UseToStringCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyBoostModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt -index 2cb28f4e8f1..d664f5eb875 100644 ---- a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt -@@ -52,13 +52,17 @@ add_clang_library(clangTidyBugproneModule - VirtualNearMissCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyCppCoreGuidelinesModule -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyBugproneModule -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyCppCoreGuidelinesModule -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt -index 66ea2a13acd..75a13349f2f 100644 ---- a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt -@@ -17,10 +17,6 @@ add_clang_library(clangTidyCERTModule - VariadicFunctionDefCheck.cpp - - LINK_LIBS -- clangAST -- clangASTMatchers -- clangBasic -- clangLex - clangTidy - clangTidyBugproneModule - clangTidyGoogleModule -@@ -29,3 +25,11 @@ add_clang_library(clangTidyCERTModule - clangTidyReadabilityModule - clangTidyUtils - ) -+ -+clang_target_link_libraries(clangTidyCERTModule -+ PRIVATE -+ clangAST -+ clangASTMatchers -+ clangBasic -+ clangLex -+ ) -diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt b/clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt -index 13c15bc9d22..e48bc1c8b1a 100644 ---- a/clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt -@@ -23,15 +23,19 @@ add_clang_library(clangTidyCppCoreGuidelinesModule - SpecialMemberFunctionsCheck.cpp - - LINK_LIBS -- clangAST -- clangASTMatchers -- clangBasic -- clangLex -- clangSerialization - clangTidy - clangTidyMiscModule - clangTidyModernizeModule - clangTidyReadabilityModule - clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyCppCoreGuidelinesModule -+ PRIVATE -+ clangAST -+ clangASTMatchers -+ clangBasic -+ clangLex -+ clangSerialization - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/darwin/CMakeLists.txt b/clang-tools-extra/clang-tidy/darwin/CMakeLists.txt -index c650efb2a5f..feec79c12bf 100644 ---- a/clang-tools-extra/clang-tidy/darwin/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/darwin/CMakeLists.txt -@@ -6,11 +6,15 @@ add_clang_library(clangTidyDarwinModule - DispatchOnceNonstaticCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyDarwinModule -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt -index 30b319e7e5a..0148b20f364 100644 ---- a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt -@@ -12,11 +12,15 @@ add_clang_library(clangTidyFuchsiaModule - VirtualInheritanceCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyGoogleModule -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyFuchsiaModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyGoogleModule -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/google/CMakeLists.txt b/clang-tools-extra/clang-tidy/google/CMakeLists.txt -index 08368932da5..302561ba646 100644 ---- a/clang-tools-extra/clang-tidy/google/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/google/CMakeLists.txt -@@ -21,11 +21,15 @@ add_clang_library(clangTidyGoogleModule - UsingNamespaceDirectiveCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyReadabilityModule -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyGoogleModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyReadabilityModule -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt b/clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt -index 4cf26767f3d..b4c9eb7a445 100644 ---- a/clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt -@@ -8,11 +8,6 @@ add_clang_library(clangTidyHICPPModule - SignedBitwiseCheck.cpp - - LINK_LIBS -- clangAST -- clangASTMatchers -- clangBasic -- clangLex -- clangSerialization - clangTidy - clangTidyBugproneModule - clangTidyCppCoreGuidelinesModule -@@ -23,3 +18,12 @@ add_clang_library(clangTidyHICPPModule - clangTidyReadabilityModule - clangTidyUtils - ) -+ -+clang_target_link_libraries(clangTidyHICPPModule -+ PRIVATE -+ clangAST -+ clangASTMatchers -+ clangBasic -+ clangLex -+ clangSerialization -+ ) -diff --git a/clang-tools-extra/clang-tidy/linuxkernel/CMakeLists.txt b/clang-tools-extra/clang-tidy/linuxkernel/CMakeLists.txt -index f0e766d30e4..bfcc2ba526d 100644 ---- a/clang-tools-extra/clang-tidy/linuxkernel/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/linuxkernel/CMakeLists.txt -@@ -5,10 +5,14 @@ add_clang_library(clangTidyLinuxKernelModule - MustCheckErrsCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyLinuxKernelModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt b/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt -index c035596b556..bff128cbba7 100644 ---- a/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/llvm/CMakeLists.txt -@@ -9,12 +9,16 @@ add_clang_library(clangTidyLLVMModule - TwineLocalCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyReadabilityModule -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyLLVMModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyReadabilityModule -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/misc/CMakeLists.txt b/clang-tools-extra/clang-tidy/misc/CMakeLists.txt -index 3fc152148d6..37bc2aa5af6 100644 ---- a/clang-tools-extra/clang-tidy/misc/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/misc/CMakeLists.txt -@@ -17,13 +17,17 @@ add_clang_library(clangTidyMiscModule - UnusedUsingDeclsCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyMiscModule -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers - clangBasic - clangLex - clangSerialization -- clangTidy -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt b/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt -index 36193f0a6d1..162f44568c5 100644 ---- a/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/modernize/CMakeLists.txt -@@ -36,12 +36,16 @@ add_clang_library(clangTidyModernizeModule - UseUsingCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyReadabilityModule -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyModernizeModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyReadabilityModule -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/mpi/CMakeLists.txt b/clang-tools-extra/clang-tidy/mpi/CMakeLists.txt -index 5be7b36550a..b36767ac7f3 100644 ---- a/clang-tools-extra/clang-tidy/mpi/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/mpi/CMakeLists.txt -@@ -6,13 +6,17 @@ add_clang_library(clangTidyMPIModule - TypeMismatchCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyMPIModule -+ PRIVATE - clangAnalysis - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - clangTooling - clangStaticAnalyzerCheckers - ) -diff --git a/clang-tools-extra/clang-tidy/objc/CMakeLists.txt b/clang-tools-extra/clang-tidy/objc/CMakeLists.txt -index 68dda6530f7..3624d2f3ef0 100644 ---- a/clang-tools-extra/clang-tidy/objc/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/objc/CMakeLists.txt -@@ -9,10 +9,14 @@ add_clang_library(clangTidyObjCModule - SuperSelfCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyObjCModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt b/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt -index af95704fd44..d182b29f366 100644 ---- a/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt -@@ -8,9 +8,13 @@ add_clang_library(clangTidyOpenMPModule - UseDefaultNoneCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyOpenMPModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/performance/CMakeLists.txt b/clang-tools-extra/clang-tidy/performance/CMakeLists.txt -index d1f9897b015..c9a7e262124 100644 ---- a/clang-tools-extra/clang-tidy/performance/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/performance/CMakeLists.txt -@@ -18,11 +18,15 @@ add_clang_library(clangTidyPerformanceModule - UnnecessaryValueParamCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyPerformanceModule -+ PRIVATE - clangAST - clangASTMatchers - clangAnalysis - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt b/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt -index 4adc3f26977..0bfe122314e 100644 ---- a/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt -@@ -2,12 +2,16 @@ add_clang_library(clangTidyPlugin - ClangTidyPlugin.cpp - - LINK_LIBS -+ clangTidy -+ ${ALL_CLANG_TIDY_CHECKS} -+ ) -+ -+clang_target_link_libraries(clangTidyPlugin -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangFrontend - clangSema -- clangTidy - clangTooling -- ${ALL_CLANG_TIDY_CHECKS} - ) -diff --git a/clang-tools-extra/clang-tidy/portability/CMakeLists.txt b/clang-tools-extra/clang-tidy/portability/CMakeLists.txt -index 0420a18a2a6..bbe9ccbef1f 100644 ---- a/clang-tools-extra/clang-tidy/portability/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/portability/CMakeLists.txt -@@ -5,11 +5,15 @@ add_clang_library(clangTidyPortabilityModule - SIMDIntrinsicsCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyPortabilityModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/readability/CMakeLists.txt b/clang-tools-extra/clang-tidy/readability/CMakeLists.txt -index 97144af06ca..5af900db5fd 100644 ---- a/clang-tools-extra/clang-tidy/readability/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/readability/CMakeLists.txt -@@ -41,11 +41,15 @@ add_clang_library(clangTidyReadabilityModule - UppercaseLiteralSuffixCheck.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyReadabilityModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - clangTooling - ) -diff --git a/clang-tools-extra/clang-tidy/utils/CMakeLists.txt b/clang-tools-extra/clang-tidy/utils/CMakeLists.txt -index fc383a318b9..5c837ca79aa 100644 ---- a/clang-tools-extra/clang-tidy/utils/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/utils/CMakeLists.txt -@@ -18,11 +18,15 @@ add_clang_library(clangTidyUtils - UsingInserter.cpp - - LINK_LIBS -+ clangTidy -+ ) -+ -+clang_target_link_libraries(clangTidyUtils -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex - clangSema -- clangTidy - clangTransformer - ) -diff --git a/clang-tools-extra/clang-tidy/zircon/CMakeLists.txt b/clang-tools-extra/clang-tidy/zircon/CMakeLists.txt -index 7aa7cd3f669..71db5e90f25 100644 ---- a/clang-tools-extra/clang-tidy/zircon/CMakeLists.txt -+++ b/clang-tools-extra/clang-tidy/zircon/CMakeLists.txt -@@ -5,10 +5,14 @@ add_clang_library(clangTidyZirconModule - ZirconTidyModule.cpp - - LINK_LIBS -+ clangTidy -+ clangTidyUtils -+ ) -+ -+clang_target_link_libraries(clangTidyZirconModule -+ PRIVATE - clangAST - clangASTMatchers - clangBasic - clangLex -- clangTidy -- clangTidyUtils - ) -diff --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt -index e3eccb50a49..148043ee9df 100644 ---- a/clang-tools-extra/clangd/CMakeLists.txt -+++ b/clang-tools-extra/clangd/CMakeLists.txt -@@ -110,6 +110,13 @@ add_clang_library(clangDaemon - refactor/Tweak.cpp - - LINK_LIBS -+ clangTidy -+ ${LLVM_PTHREAD_LIB} -+ ${ALL_CLANG_TIDY_CHECKS} -+ ) -+ -+clang_target_link_libraries(clangDaemon -+ PRIVATE - clangAST - clangASTMatchers - clangBasic -@@ -120,15 +127,11 @@ add_clang_library(clangDaemon - clangLex - clangSema - clangSerialization -- clangTidy - clangTooling - clangToolingCore - clangToolingInclusions - clangToolingRefactoring - clangToolingSyntax -- ${LLVM_PTHREAD_LIB} -- ${CLANGD_ATOMIC_LIB} -- ${ALL_CLANG_TIDY_CHECKS} - ) - - add_subdirectory(refactor/tweaks) -diff --git a/clang-tools-extra/clangd/unittests/CMakeLists.txt b/clang-tools-extra/clangd/unittests/CMakeLists.txt -index 62113c6e4bb..6c2b56c93d5 100644 ---- a/clang-tools-extra/clangd/unittests/CMakeLists.txt -+++ b/clang-tools-extra/clangd/unittests/CMakeLists.txt -@@ -103,7 +103,6 @@ target_link_libraries(ClangdTests - PRIVATE - clangDaemon - clangTidy -- LLVMSupport - LLVMTestingSupport - ) - --- -2.27.0 - -- cgit v1.2.3