X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCMake.html;h=0bafedd9b0930254569a67348b90efe9fde7885c;hb=a75ce9f5d2236d93c117e861e60e6f3f748c9555;hp=ef50f5279eb66c5dcda5371e5c547ba8a4d7c2ce;hpb=25f1d0310c522482a417785ae53bd92680dde48c;p=oota-llvm.git diff --git a/docs/CMake.html b/docs/CMake.html index ef50f5279eb..0bafedd9b09 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -15,17 +15,21 @@
If you are really anxious +
If you are really anxious about getting a functional LLVM build, + go to the Quick start section. If you + are a CMake novice, start on Basic CMake + usage and then go back to the Quick + start once you know what you are + doing. The Options and variables section + is a reference for customizing your build. If you already have + experience with CMake, this is the recommended starting point. @@ -56,8 +67,8 @@
Download - and install CMake. Version 2.6.2 is the minimum required.
+Download + and install CMake. Version 2.8 is the minimum required.
Open a shell. Your development tools must be reachable from this shell through the PATH environment variable.
@@ -105,7 +116,43 @@TODO
+This section explains basic aspects of CMake, mostly for + explaining those options which you may need on your day-to-day + usage.
+ +CMake comes with extensive documentation in the form of html + files and on the cmake executable itself. Execute cmake + --help for further help options.
+ +CMake requires to know for which build tool it shall generate + files (GNU make, Visual Studio, Xcode, etc). If not specified on + the command line, it tries to guess it based on you + environment. Once identified the build tool, CMake uses the + corresponding Generator for creating files for your build + tool. You can explicitly specify the generator with the command + line option -G "Name of the generator". For knowing the + available generators on your platform, execute
+ +cmake --help
+This will list the generator's names at the end of the help + text. Generator's names are case-sensitive. Example:
+ +cmake -G "Visual Studio 8 2005" path/to/llvm/source/root
+For a given development platform there can be more than one + adequate generator. If you use Visual Studio "NMake Makefiles" + is a generator you can use for building with NMake. By default, + CMake chooses the more specific generator supported by your + development environment. If you want an alternative generator, + you must tell this to CMake with the -G option.
+ +TODO: explain variables and cache. Move explanation here from + #options section.
Variables are stored on the CMake cache. This is a file
- named
Variables are listed here appending its type after a colon. It is @@ -156,13 +203,13 @@
Here are listed some of the CMake variables that are used often, along with a brief explanation and LLVM-specific notes. For full documentation, check the CMake docs or execute cmake - --help-variable VARIABLE_NAME. + --help-variable VARIABLE_NAME.
TODO
+Testing is performed when the check target is built. For + instance, if you are using makefiles, execute this command while on + the top level of your build directory:
+ +make check
+Testing is not supported on Visual Studio.
TODO
+See this + wiki page for generic instructions on how to cross-compile + with CMake. It goes into detailed explanations and may seem + daunting, but it is not. On the wiki page there are several + examples including toolchain files. Go directly to + this + section for a quick solution.
+ +Also see the LLVM-specific variables + section for variables used when cross-compiling.
TODO
+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:
+ ++ # A convenience variable: + set(LLVM_ROOT "" CACHE PATH "Root of LLVM install.") + # A bit of a sanity check: + if( NOT EXISTS ${LLVM_ROOT}/include/llvm ) + message(FATAL_ERROR "LLVM_ROOT (${LLVM_ROOT}) is not a valid LLVM install") + endif() + # We incorporate the CMake features provided by LLVM: + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LLVM_ROOT}/share/llvm/cmake") + include(LLVM) + # Now set the header and library paths: + include_directories( ${LLVM_ROOT}/include ) + link_directories( ${LLVM_ROOT}/lib ) + # Let's suppose we want to build a JIT compiler with support for + # binary code (no interpreter): + llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native) + # Finally, we link the LLVM libraries to our executable: + target_link_libraries(mycompiler ${REQ_LLVM_LIBRARIES}) ++
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 include_directories for the location of the + headers on the LLVM source directory (if we are building + out-of-source.)
+ +Notes for specific compilers and/or platforms.