forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CMake: document how to incorporate LLVM into the cmake project of an
external project. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110561 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Oscar Fuentes
committed
Aug 9, 2010
1 parent
6252e98
commit c2d8688
Showing
1 changed file
with
33 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -354,7 +354,38 @@ | |
|
||
<div class="doc_text"> | ||
|
||
<p>TODO</p> | ||
<p>The most difficult part of adding LLVM to the build of a project | ||
is to determine the set of LLVM libraries corresponding to the set | ||
of required LLVM features. What follows is an example of how to | ||
obtain this information:</p> | ||
|
||
<div class="doc_code"> | ||
<pre> | ||
<b># A convenience variable:</b> | ||
set(LLVM_ROOT "" CACHE PATH "Root of LLVM install.") | ||
<b># A bit of a sanity check:</b> | ||
if( NOT EXISTS ${LLVM_ROOT}/include/llvm ) | ||
message(FATAL_ERROR "LLVM_ROOT (${LLVM_ROOT}) is not a valid LLVM install") | ||
endif() | ||
<b># We incorporate the CMake features provided by LLVM:</b> | ||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LLVM_ROOT}/share/llvm/cmake") | ||
include(LLVM) | ||
<b># Now set the header and library paths:</b> | ||
include_directories( ${LLVM_ROOT}/include ) | ||
link_directories( ${LLVM_ROOT}/lib ) | ||
<b># Let's suppose we want to build a JIT compiler with support for | ||
# binary code (no interpreter):</b> | ||
llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native) | ||
<b># Finally, we link the LLVM libraries to our executable:</b> | ||
target_link_libraries(mycompiler ${REQ_LLVM_LIBRARIES}) | ||
</pre> | ||
</div> | ||
|
||
<p>This assumes that LLVM_ROOT points to an install of LLVM. The | ||
procedure works too for uninstalled builds although we need to take | ||
care to add an <i>include_directories</i> for the location of the | ||
headers on the LLVM source directory (if we are building | ||
out-of-source.)</p> | ||
|
||
</div> | ||
|
||
|
@@ -383,7 +414,7 @@ | |
|
||
<a href="mailto:[email protected]">Oscar Fuentes</a><br> | ||
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br> | ||
Last modified: $Date: 2008-12-31 03:59:36 +0100 (Wed, 31 Dec 2008) $ | ||
Last modified: $Date: 2010-08-09 03:59:36 +0100 (Mon, 9 Aug 2010) $ | ||
</address> | ||
|
||
</body> | ||
|