summaryrefslogtreecommitdiffstats
path: root/build/build-clang/README
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /build/build-clang/README
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--build/build-clang/README53
1 files changed, 53 insertions, 0 deletions
diff --git a/build/build-clang/README b/build/build-clang/README
new file mode 100644
index 0000000000..5b13edeeb9
--- /dev/null
+++ b/build/build-clang/README
@@ -0,0 +1,53 @@
+build-clang.py
+==============
+
+A script to build clang from source.
+
+```
+usage: build-clang.py [-h] -c CONFIG [--clean]
+
+optional arguments:
+ -h, --help show this help message and exit
+ -c CONFIG, --config CONFIG
+ Clang configuration file
+ --clean Clean the build directory
+```
+
+Pre-requisites
+--------------
+* Working build toolchain.
+* git
+* CMake
+* Ninja
+* Python 2.7 and 3
+
+Please use the latest available CMake for your platform to avoid surprises.
+
+Config file format
+------------------
+
+build-clang.py accepts a JSON config format with the following fields:
+
+* stages: Use 1, 2, 3 or 4 to select different compiler stages. The default is 2.
+* cc: Path to the bootsraping C Compiler.
+* cxx: Path to the bootsraping C++ Compiler.
+* as: Path to the assembler tool.
+* ar: Path to the library archiver tool.
+* ranlib: Path to the ranlib tool (optional).
+* ld: Path to the linker.
+* patches: Optional list of patches to apply.
+* build_type: The type of build to make. Supported types: Release, Debug, RelWithDebInfo or MinSizeRel.
+* targets: The targets supported by the final stage LLVM/clang.
+* build_clang_tidy: Whether to build clang-tidy with the Mozilla checks imported. The default is false.
+* osx_cross_compile: Whether to invoke CMake for OS X cross compile builds.
+* assertions: Whether to enable LLVM assertions. The default is false.
+* pgo: Whether to build with PGO (requires stages == 4). The default is false.
+
+The revisions are defined in taskcluster/ci/fetch/toolchains.yml. They are usually commit sha1s corresponding to upstream tags.
+
+Environment Variables
+---------------------
+
+The following environment variables are used for cross-compile builds targeting OS X on Linux.
+
+* CROSS_SYSROOT: Path to the OS X SDK directory for cross compile builds.