Closed GPMueller closed 2 years ago
The basic toolchain
module has been merged with 97367e088b6f59b11708ee5e7099e9f37c99d510.
The Emscripten toolchain has been merged with 0f5970adebc86b40d74926a926d5dcfc6bcb421f. Improvement of the class structure will be tracked on issue #137.
After merging PR #118, which introduces the
toolchain
module, we should consider the following long-term goals for what a toolchain should be.A toolchain should provide
One toolchain should support only one host platform and architecture per build platform. Alternatively we might even split the toolchains by build platform (i.e. llvm on windows is a different toolchain from llvm on linux).
Toolchain Selection
We need to provide some mechanism for toolchain selection. A simple command line flag would be enough, e.g.
clang-build --toolchain=/path/to/toolchain.py
. However, we also need to decide how this API should work - should the toolchain.py provide aget_toolchain
function, analogous to theget_project
function that is the API forclang-build.py
project files?Examples we could try to get running
<OS>
, compileC++
forx86
on<OS>
(llvm toolchain)<OS>
, compileCUDA-C++
forGPU
on<OS>
(llvm toolchain)<OS>
, compileC++
forwasm
onweb
(emscripten toolchain)