Generate project templates for executables that use LLVM and LLVM passes.
A normal executable program that uses LLVM.
A LLVM pass that can be easily integrated into LLVM project in the future. See this for more information
A executable program that can be easily integrated into LLVM project as one of the tools in the future.
Requirements:
Install yeoman:
npm install -g yo
Install this generator from npm repository
npm install -g generator-llvm
Boostraping a new project:
yo llvm:executable init
Adding new program to existing (executable)project
yo llvm:executable append
Boostraping a new project
yo llvm:pass init
Adding new program to existing (pass)project
yo llvm:pass append
If you like to stay on bleeding edge and want to try the new PassManager pass, add the --new-pm
at the tail:
yo llvm::pass init --new-pm
# Same option applies to the "append" command as well
The generated pass is also loaded as an external plugin. Please refer to this article I wrote about how to run a new PassManager pass.
If you append new executable/pass to existing project, it would show the following message:
conflict ../CMakeLists.txt
? Overwrite ../CMakeLists.txt? (ynaxdH)
It is because that we're trying to modify an exist file(the top-level CMakeLists.txt), which is not what yeoman glad to see. However, in this case, press y
to overrite is totally fine.
(In this repo folder)Install dependencies:
npm install
Temporary link to yeoman's generator repository
npm link