mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
27dc2c9c56
We cannot depend on a fixed location for cl.exe in a taskcluster world. We therefore need to make our build-clang.py script accomodate relative path names for cc/cxx and assume those are binaries that should be looked up on PATH. We also need to modify the Linux build script so that the virtualenv is used to look up the new 'which' package. |
||
---|---|---|
.. | ||
build-clang.py | ||
clang-static-analysis-linux64.json | ||
clang-static-analysis-macosx64.json | ||
clang-static-analysis-win32.json | ||
clang-static-analysis-win64.json | ||
disable-mac-tsan.patch | ||
llvm-debug-frame.patch | ||
query-selector-visibility.patch | ||
README | ||
return-empty-string-non-mangled.patch |
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. * Subversion * CMake * Ninja * Python 2.7 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: * llvm_revision: The LLVM SVN revision to build. * stages: Use 1, 2, or 3 to select different compiler stages. The default is 3. * llvm_repo: SVN path to the LLVM repo. * clang_repo: SVN path to the Clang repo. * compiler_repo: SVN path to the compiler-rt repo. * libcxx_repo: SVN path to the libcxx repo. * libcxxabi_repo: SVN path to the libcxxabi repo. * python_path: Path to the Python 2.7 installation on the machine building clang. * gcc_dir: Path to the gcc toolchain installation, only required on Linux. * cc: Path to the bootsraping C Compiler. * cxx: Path to the bootsraping C++ Compiler. * patches: Optional list of patches to apply per platform. Supported platforms: macosx64, linux32, linux64. The default is Release. * build_type: The type of build to make. Supported types: Release, Debug, RelWithDebInfo or MinSizeRel. * build_libcxx: Whether to build with libcxx. The default is false. * assertions: Whether to enable LLVM assertions. The default is false.