From 25f1d0310c522482a417785ae53bd92680dde48c Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Thu, 20 Nov 2008 22:05:48 +0000 Subject: [PATCH] CMake: Some documentation. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59752 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CMake.html | 271 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 docs/CMake.html diff --git a/docs/CMake.html b/docs/CMake.html new file mode 100644 index 00000000000..ef50f5279eb --- /dev/null +++ b/docs/CMake.html @@ -0,0 +1,271 @@ + + + + Building LLVM with CMake + + + +
+ Building LLVM with CMake +
+ + + +
+

Written by Óscar Fuentes

+
+ + +
+Introduction +
+ + +
+ +

CMake is a cross-platform + build-generator tool. CMake does not build the project, it generates + the files needed by your build tool (GNU make, Visual Studio, etc) for + building LLVM.

+ +

If you are really anxious +

+ + +
+Quick start +
+ + +
+ +

We use here the command-line, non-interactive CMake interface

+ +
    + +
  1. Download + and install CMake. Version 2.6.2 is the minimum required.

    + +
  2. Open a shell. Your development tools must be reachable from this + shell through the PATH environment variable.

    + +
  3. Create a directory for containing the build. It is not + supported to build LLVM on the source directory. cd to this + directory:

    +
    +

    mkdir mybuilddir

    +

    cd mybuilddir

    +
    + +
  4. Execute this command on the shell + replacing path/to/llvm/source/root with the path to the + root of your LLVM source tree:

    +
    +

    cmake path/to/llvm/source/root

    +
    + +

    CMake will detect your development environment, perform a + series of test and generate the files required for building + LLVM. CMake will use default values for all build + parameters. See the Options and variables + section for fine-tuning your build

    + +

    This can fail if CMake can't detect your toolset, or if it + thinks that the environment is not sane enough. On this case + make sure that the toolset that you intend to use is the only + one reachable from the shell and that the shell itself is the + correct one for you development environment. CMake will refuse + to build MinGW makefiles if you have a POSIX shell reachable + through the PATH environment variable, for instance. You can + force CMake to use a given build tool, see + the Usage section.

    + +
+ +
+ + +
+ Basic CMake usage +
+ + +
+ +

TODO

+ +
+ + +
+ Options and variables +
+ + +
+ +

Variables customize how the build will be generated. Options are + boolean variables, with possible values ON/OFF. Options and + variables are defined on the CMake command line like this:

+ +
+

cmake -DVARIABLE=value path/to/llvm/source

+
+ +

You can set a variable after the initial CMake invocation for + changing its value. You can also undefine a variable:

+ +
+

cmake -UVARIABLE path/to/llvm/source

+
+ +

Variables are stored on the CMake cache. This is a file + named CMakeCache.txt on the root of the build + directory. Do not hand-edit it.

+ +

Variables are listed here appending its type after a colon. It is + correct to write the variable and the type on the CMake command + line:

+ +
+

cmake -DVARIABLE:TYPE=value path/to/llvm/source

+
+ +
+ + +
+ Frequently-used CMake variables +
+ +
+ +

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. + +

+
CMAKE_BUILD_TYPE:STRING
+ +
Sets the build type for make based generators. Possible + values are Release, Debug, RelWithDebInfo and MiniSizeRel. On + systems like Visual Studio the user sets the build type with the IDE + settings.
+ +
CMAKE_INSTALL_PREFIX:PATH
+
Path where LLVM will be installed if "make install" is invoked + or the "INSTALL" target is built.
+ +
BUILD_SHARED_LIBS:BOOL
+
Flag indicating is shared libraries will be built. Its default + value is OFF. Shared libraries are not supported on Windows and + not recommended in the other OSes.
+
+ +
+ + +
+ LLVM-specific variables +
+ +
+ +
+
LLVM_TARGETS_TO_BUILD:STRING
+
Semicolon-separated list of targets to build, or all for + building all targets. Case-sensitive. For Visual C++ defaults + to X86. On the other cases defaults to all. Example: + -DLLVM_TARGETS_TO_BUILD="X86;PowerPC;Alpha".
+ +
LLVM_ENABLE_THREADS:BOOL
+
Build with threads support, if available. Defaults to ON.
+ +
LLVM_ENABLE_PIC:BOOL
+
Add the -fPIC flag to the compiler command-line, if the + compiler supports this flag. Some systems, like Windows, does not + need this flag. Defaults to OFF.
+ +
LLVM_BUILD_32_BITS:BOOL
+
Build 32-bits executables and libraries on 64-bits systems. This + option is available only on some 64-bits unix systems. Defaults to + OFF.
+ +
LLVM_PLO_FLAGS:STRING
+
Extra flags for creating partially linked objects. Visual C++ + does not use this.
+ +
LLVM_TABLEGEN:STRING
+
Full path to a native TableGen executable (usually + named tblgen). This is intented for cross-compiling: if the + user sets this variable, no native TableGen will be created.
+
+ +
+ + +
+ Executing the test suite +
+ + +
+ +

TODO

+ +
+ + +
+ Cross compiling +
+ + +
+ +

TODO

+ +
+ + +
+ Embedding LLVM in your project +
+ + +
+ +

TODO

+ +
+ + + +
+
+ Valid CSS! + Valid HTML 4.01! + + Óscar Fuentes
+ LLVM Compiler Infrastructure
+ Last modified: $Date: 2008-10-27 00:59:36 +0100 (Mon, 27 Oct 2008) $ +
+ + +