Lines Matching +full:build +full:- +full:clang

5 DESCRIPTION = "Clang is an LLVM based C/C++/Objective-C compiler, \
9 level tools. The Clang Static Analyzer and \
10 clang-tidy are tools that automatically find bugs \
12 of tools that can be built using the Clang frontend \
14 HOMEPAGE = "http://clang.llvm.org/"
17 require common-clang.inc
18 require common-source.inc
20 INHIBIT_DEFAULT_DEPS:class-native = "1"
22 LDFLAGS:append:class-target:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
23 LDFLAGS:append:class-target:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
52 PACKAGECONFIG_CLANG_COMMON = "build-id eh libedit rtti shared-libs libclang-python \
53 …${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', 'compiler-rt libcplusplus libomp unwindlib', '', d)…
56 PACKAGECONFIG ??= "lldb-wchar terminfo \
58 ${@bb.utils.filter('DISTRO_FEATURES', 'lto thin-lto', d)} \
60 PACKAGECONFIG:class-native = "clangd \
63 PACKAGECONFIG:class-nativesdk = "clangd \
65 ${@bb.utils.filter('DISTRO_FEATURES', 'lto thin-lto', d)} \
68 …ECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -
69 PACKAGECONFIG[build-id] = "-DENABLE_LINKER_BUILD_ID=ON,-DENABLE_LINKER_BUILD_ID=OFF,,"
70 PACKAGECONFIG[clangd] = "-DCLANG_ENABLE_CLANGD=ON,-DCLANG_ENABLE_CLANGD=OFF,,"
72 # Activate to build the dexp tool in clangd
73 # Disabled by default for -native since it is known to trigger compiler failure on Debian 11
75 PACKAGECONFIG[clangd-dexp] = "-DCLANGD_BUILD_DEXP=ON,-DCLANGD_BUILD_DEXP=OFF,,"
77 PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,"
78 PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF,,"
79 PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,"
80 …NFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON -DLLDB_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF -DLLD…
81 PACKAGECONFIG[libomp] = "-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp,,"
82 PACKAGECONFIG[lld] = "-DCLANG_DEFAULT_LINKER=lld,,"
83 PACKAGECONFIG[lldb-lua] = "-DLLDB_ENABLE_LUA=ON,-DLLDB_ENABLE_LUA=OFF,lua"
84 PACKAGECONFIG[lldb-wchar] = "-DLLDB_EDITLINE_USE_WCHAR=1,-DLLDB_EDITLINE_USE_WCHAR=0,"
85 PACKAGECONFIG[lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils,"
86 PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm,"
87 PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,,"
88 PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,,"
89 PACKAGECONFIG[split-dwarf] = "-DLLVM_USE_SPLIT_DWARF=ON,-DLLVM_USE_SPLIT_DWARF=OFF,,"
90 PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON -DCOMPILER_RT_TERMINFO_LIB=ON,-DLLVM_ENABLE_TE…
91 PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutil…
92 PACKAGECONFIG[unwindlib] = "-DCLANG_DEFAULT_UNWINDLIB=libunwind,-DCLANG_DEFAULT_UNWINDLIB=libgcc,,"
93 PACKAGECONFIG[libclang-python] = "-DCLANG_PYTHON_BINDINGS_VERSIONS=${PYTHON_BASEVERSION},,"
98 OECMAKE_TARGET_INSTALL = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2-install', 'ins…
99 BINPATHPREFIX = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', '/tools/clang/stage2-bins/NATIV…
116 # Default to build all OE-Core supported target arches (user overridable).
118 # where only one target architecture is needed along with just one build arch (usually X86)
124 LLVM_TARGETS_TO_BUILD:class-target ?= "${@get_clang_host_arch(bb, d)};AMDGPU;BPF;NVPTX;SPIRV"
129 HF:class-target = "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}"
134 LLVM_PROJECTS ?= "clang;clang-tools-extra;libclc;lld${LLDB}"
147 EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
148 -DLLVM_APPEND_VC_REV=OFF \
149 -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \
150 -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
151 -DLLVM_ENABLE_PIC=ON \
152 -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
153 -DLLVM_BINDINGS_LIST='' \
154 -DLLVM_ENABLE_FFI=ON \
155 -DLLVM_ENABLE_ZSTD=ON \
156 -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
157 -DLLVM_OPTIMIZED_TABLEGEN=ON \
158 -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \
159 -DCMAKE_SYSTEM_NAME=Linux \
160 -DCMAKE_BUILD_TYPE=Release \
161 -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
162 -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \
163 -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
164 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
165 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
166 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
169 EXTRA_OECMAKE:append:class-native = "\
170 -DPYTHON_EXECUTABLE='${PYTHON}' \
172 EXTRA_OECMAKE:append:class-nativesdk = "\
173-DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \
174 -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \
175 -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \
176-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \
177 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
178 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
179 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
180 -DCMAKE_STRIP=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-strip \
181 -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
182 -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \
183 -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
184 -DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \
185 -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \
186 -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \
187 -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \
188 -DPYTHON_EXECUTABLE='${PYTHON}' \
190 EXTRA_OECMAKE:append:class-target = "\
191 -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
192 -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \
193 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
194 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
195 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
196 -DCMAKE_STRIP=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-strip \
197 -DLLVM_TARGET_ARCH=${HOST_ARCH} \
198 -DLLVM_DEFAULT_TARGET_TRIPLE=${TARGET_SYS}${HF} \
199 -DLLVM_HOST_TRIPLE=${TARGET_SYS}${HF} \
200 -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
201 -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \
202 -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
203 -DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \
204 -DLLDB_PYTHON_EXE_RELATIVE_PATH=${bindir} \
205 -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \
208 DEPENDS = "binutils zlib zstd libffi libxml2 libxml2-native ninja-native swig-native spirv-tools-na…
209 DEPENDS:append:class-nativesdk = " clang-crosssdk-${SDK_SYS} virtual/nativesdk-cross-binutils nativ…
210 …ass-target = " clang-cross-${TARGET_ARCH} python3 ${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', '…
213 RRECOMMENDS:${PN}:append:class-target = "${@bb.utils.contains('TC_CXX_RUNTIME', 'llvm', ' libcxx-de…
215 # patch out build host paths for reproducibility
217 sed -i -e "s,${DEBUG_PREFIX_MAP},,g" \
218 -e "s,--sysroot=${RECIPE_SYSROOT},,g" \
219 -e "s,${STAGING_DIR_HOST},,g" \
220 -e "s,${S}/llvm,,g" \
221 -e "s,${B},,g" \
222 ${B}/tools/llvm-config/BuildVariables.inc
225 do_configure:append:class-target() {
229 do_configure:append:class-nativesdk() {
234 rm -rf ${D}${libdir}/python*/site-packages/six.py
235 for t in clang-pseudo clang-pseudo-gen clang-rename; do
236 if [ -e ${B}${BINPATHPREFIX}/bin/$t ]; then
237 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/$t ${D}${bindir}/$t
242 do_install:append:class-target () {
244 …sed -i 's;${_IMPORT_PREFIX}/bin;${_IMPORT_PREFIX_BIN};g' ${D}${libdir}/cmake/llvm/LLVMExports-rele…
247 sed -i "4i\
249 …execute_process(COMMAND \"llvm-config\" \"--bindir\" OUTPUT_VARIABLE _IMPORT_PREFIX_BIN OUTPUT_STR…
252 endif()\n" ${D}${libdir}/cmake/llvm/LLVMExports-release.cmake
254 if [ -n "${LLVM_LIBDIR_SUFFIX}" ]; then
255 mkdir -p ${D}${nonarch_libdir}
256 mv ${D}${libdir}/clang ${D}${nonarch_libdir}/clang
257 ln -rs ${D}${nonarch_libdir}/clang ${D}${libdir}/clang
258 rmdir --ignore-fail-on-non-empty ${D}${libdir}
260 …for t in clang clang++ llvm-nm llvm-ar llvm-as llvm-ranlib llvm-strip llvm-objcopy llvm-objdump ll…
261 llvm-addr2line llvm-dwp llvm-size llvm-strings llvm-cov; do
262 ln -sf $t ${D}${bindir}/${TARGET_PREFIX}$t
266 sed -i -e 's,${B},,g' ${D}${libdir}/cmake/llvm/LLVMConfig.cmake
269 do_install:append:class-native () {
271 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer
273 …install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy
274 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen
275 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/lldb-tblgen ${D}${bindir}/lldb-tblgen
276 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/llvm-min-tblgen ${D}${bindir}/llvm-min-tblgen
277 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/prepare_builtins ${D}${bindir}/prepare_builtins
279 for f in `find ${D}${bindir} -executable -type f -not -type l`; do
280 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f
283 ln -sf clang-tblgen ${D}${bindir}/clang-tblgen${PV}
284 ln -sf llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
285 ln -sf llvm-config ${D}${bindir}/llvm-config${PV}
288 do_install:append:class-nativesdk () {
289 if [ -e ${D}${libdir}/cmake/llvm/LLVMConfig.cmake ] ; then
290 sed -i -e "s|${B}/./bin/||g" ${D}${libdir}/cmake/llvm/LLVMConfig.cmake
293 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clangd-indexer ${D}${bindir}/clangd-indexer
295 install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tblgen ${D}${bindir}/clang-tblgen
296 …install -Dm 0755 ${B}${BINPATHPREFIX}/bin/clang-tidy-confusable-chars-gen ${D}${bindir}/clang-tidy
297 for f in `find ${D}${bindir} -executable -type f -not -type l`; do
298 test -n "`file -b $f|grep -i ELF`" && ${STRIP} $f
300 ln -sf clang-tblgen ${D}${bindir}/clang-tblgen${PV}
301 ln -sf llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
302 ln -sf llvm-config ${D}${bindir}/llvm-config${PV}
303 rm -rf ${D}${datadir}/llvm/cmake
304 rm -rf ${D}${datadir}/llvm
307 if [ -e ${D}${libdir}/cmake/llvm/LLVMConfig.cmake ] ; then
308 sed -i -e 's,${B},,g' ${D}${libdir}/cmake/llvm/LLVMConfig.cmake
312 PROVIDES:append:class-native = " llvm-native libclc-native"
313 PROVIDES:append:class-target = " llvm libclc"
314 PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc"
316 PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-python ${PN}-libclang-cpp ${PN}-tidy ${…
317 libclang lldb lldb-server liblldb llvm-linker-tools"
322 RDEPENDS:lldb += "${PN}-lldb-python lldb-server"
324 RDEPENDS:${PN}-tools += "\
325 perl-module-digest-md5 \
326 perl-module-file-basename \
327 perl-module-file-copy \
328 perl-module-file-find \
329 perl-module-file-path \
330 perl-module-findbin \
331 perl-module-hash-util \
332 perl-module-sys-hostname \
333 perl-module-term-ansicolor \
336 RPROVIDES:${PN}-clc = "${MLPREFIX}libclc"
338 RRECOMMENDS:${PN}-tidy += "${PN}-tools"
340 FILES:llvm-linker-tools = "${libdir}/LLVMgold* ${libdir}/libLTO.so.* ${libdir}/LLVMPolly*"
342 FILES:${PN}-libclang-cpp = "${libdir}/libclang-cpp.so.*"
344 FILES:${PN}-lldb-python = "${libdir}/python*/site-packages/lldb/*"
346 FILES:${PN}-libclang-python = "${PYTHON_SITEPACKAGES_DIR}/clang/*"
348 FILES:${PN}-tidy = "${bindir}/*clang-tidy*"
349 FILES:${PN}-format = "${bindir}/*clang-format*"
351 FILES:${PN}-tools = "${bindir}/analyze-build \
352 ${bindir}/c-index-test \
353 ${bindir}/clang-apply-replacements \
354 ${bindir}/clang-change-namespace \
355 ${bindir}/clang-check \
356 ${bindir}/clang-doc \
357 ${bindir}/clang-extdef-mapping \
358 ${bindir}/clang-include-fixer \
359 ${bindir}/clang-linker-wrapper \
360 ${bindir}/clang-move \
361 ${bindir}/clang-nvlink-wrapper \
362 ${bindir}/clang-offload-bundler \
363 ${bindir}/clang-offload-packager \
364 ${bindir}/clang-pseudo* \
365 ${bindir}/clang-query \
366 ${bindir}/clang-refactor \
367 ${bindir}/clang-rename* \
368 ${bindir}/clang-reorder-fields \
369 ${bindir}/clang-repl \
370 ${bindir}/clang-scan-deps \
372 ${bindir}/find-all-symbols \
375 ${bindir}/intercept-build \
377 ${bindir}/pp-trace \
379 ${bindir}/scan-build \
380 ${bindir}/scan-build-py \
381 ${bindir}/scan-view \
382 ${bindir}/split-file \
385 ${libexecdir}/analyze-c++ \
386 ${libexecdir}/analyze-cc \
387 ${libexecdir}/c++-analyzer \
388 ${libexecdir}/ccc-analyzer \
389 ${libexecdir}/intercept-c++ \
390 ${libexecdir}/intercept-cc \
391 ${datadir}/scan-build/* \
392 ${datadir}/scan-view/* \
393 ${datadir}/opt-viewer/* \
394 ${datadir}/clang/* \
398 ${bindir}/clang-cl \
406 FILES:${PN}-clc += "${datadir}/clc"
410 ${bindir}/lldb-argdumper \
411 ${bindir}/lldb-instr \
412 ${bindir}/lldb-vscode \
415 FILES:lldb-server = "\
416 ${bindir}/lldb-server \
424 FILES:${PN}-libllvm =+ "\
426 ${libdir}/libLLVM-${MAJOR_VER}.so \
434 FILES:${PN}-dev += "\
440 FILES:${PN}-doc += "${datadir}/clang-doc"
442 FILES:${PN}-staticdev += "${nonarch_libdir}/${BPN}/*.a"
444 FILES:${PN}-staticdev:remove = "${libdir}/${BPN}/*.a"
445 FILES:${PN}-dev:remove = "${libdir}/${BPN}/*.la"
448 INSANE_SKIP:${PN} += "already-stripped"
449 #INSANE_SKIP:${PN}-dev += "dev-elf"
450 INSANE_SKIP:${PN}-lldb-python += "dev-so dev-deps"
451 INSANE_SKIP:${MLPREFIX}liblldb = "dev-so"
452 INSANE_SKIP:${PN}-libllvm = "dev-so"
454 #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config.
455 SSTATE_SCAN_FILES:remove = "*-config"
457 COMPILER_RT:class-nativesdk:toolchain-clang:runtime-llvm = "-rtlib=libgcc --unwindlib=libgcc"
458 LIBCPLUSPLUS:class-nativesdk:toolchain-clang:runtime-llvm = "-stdlib=libstdc++"
460 SYSROOT_DIRS:append:class-target = " ${nonarch_libdir}"
462 SYSROOT_PREPROCESS_FUNCS:append:class-target = " clang_sysroot_preprocess"
463 SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " clang_sysroot_preprocess"
466 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
467 install -m 0755 ${S}/llvm/tools/llvm-config/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
468 ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
470 install -d ${SYSROOT_DESTDIR}${bindir}
472 binaries="lld diagtool clang-${MAJOR_VER} clang-format clang-offload-packager
473 clang-offload-bundler clang-scan-deps clang-repl
474 clang-refactor clang-check clang-extdef-mapping clang-apply-replacements
475clang-reorder-fields clang-tidy clang-change-namespace clang-doc clang-include-fixer
476 find-all-symbols clang-move clang-query pp-trace modularize"
484 install -m 755 ${D}${bindir}/$f ${SYSROOT_DESTDIR}${bindir}/