diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2011-04-12 19:40:35 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2011-04-12 19:40:35 +0000 |
commit | 23ba1e4faa8317e762eb95aecd786e9600e9f834 (patch) | |
tree | 6a9e33e4ec71ed3e80c850249418bed6cb85d136 /docs | |
parent | c6d8853dff22b57b81f3f0e901915965538d77d1 (diff) |
Document how to build a LLVM pass with CMake out of source.
Patch by arrowdodger!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129381 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/CMake.html | 58 | ||||
-rw-r--r-- | docs/WritingAnLLVMPass.html | 3 |
2 files changed, 61 insertions, 0 deletions
diff --git a/docs/CMake.html b/docs/CMake.html index 6778d6b731..73e6f440e3 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -22,6 +22,9 @@ <li><a href="#testing">Executing the test suite</a> <li><a href="#cross">Cross compiling</a> <li><a href="#embedding">Embedding LLVM in your project</a> + <ul> + <li><a href="#passdev">Developing LLVM pass out of source</a></li> + </ul></li> <li><a href="#specifics">Compiler/Platform specific topics</a> <ul> <li><a href="#msvc">Microsoft Visual C++</a></li> @@ -458,6 +461,61 @@ </div> +<!-- ======================================================================= --> +<div class="doc_subsection"> + <a name="passdev">Developing LLVM pass out of source</a> +</div> + +<div class="doc_text"> + + <p>It is possible to develop LLVM passes against installed LLVM. + An example of project layout provided below:</p> + + <div class="doc_code"> + <pre> + <project dir>/ + | + CMakeLists.txt + <pass name>/ + | + CMakeLists.txt + Pass.cpp + ... + </pre> + </div> + + <p>Contents of <project dir>/CMakeLists.txt:</p> + + <div class="doc_code"> + <pre> + find_package(LLVM) + + <b># Define add_llvm_* macro's.</b> + include(AddLLVM) + + add_definitions(${LLVM_DEFINITIONS}) + include_directories(${LLVM_INCLUDE_DIRS}) + link_directories(${LLVM_LIBRARY_DIRS}) + + add_subdirectory(<pass name>) + </pre> + </div> + + <p>Contents of <project dir>/<pass name>/CMakeLists.txt:</p> + + <div class="doc_code"> + <pre> + add_llvm_loadable_module(LLVMPassname + Pass.cpp + ) + </pre> + </div> + + <p>When you are done developing your pass, you may wish to integrate it + into LLVM source tree. You can achieve it in two easy steps:<br> + 1. Copying <pass name> folder into <LLVM root>/lib/Transform directory.<br> + 2. Adding "add_subdirectory(<pass name>)" line into <LLVM root>/lib/Transform/CMakeLists.txt</p> +</div> <!-- *********************************************************************** --> <!-- *********************************************************************** --> diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index 6d18d192e3..7e15245274 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -211,6 +211,9 @@ the <tt>opt</tt> or <tt>bugpoint</tt> tools via their <tt>-load</tt> options. If your operating system uses a suffix other than .so (such as windows or Mac OS/X), the appropriate extension will be used.</p> +<p>If you are used CMake to build LLVM, see +<a href="CMake.html#passdev">Developing an LLVM pass with CMake</a>.</p> + <p>Now that we have the build scripts set up, we just need to write the code for the pass itself.</p> |