X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCMake.html;h=c5c553826496d5e270815466737487aac2ee6545;hb=09aa3f0ef35d9241c92439d74b8d5e9a81d814c2;hp=1ef7abeef2a221b69e454d2a12a318ee9a8c50be;hpb=34888816e802fb83a84ca0c7cc7b7a21d9fcd764;p=oota-llvm.git diff --git a/docs/CMake.html b/docs/CMake.html index 1ef7abeef2a..c5c55382649 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -68,7 +68,7 @@
  1. Download - and install CMake. Version 2.6.2 is the minimum required.

    + and install CMake. Version 2.8 is the minimum required.

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

    @@ -209,7 +209,7 @@
    CMAKE_BUILD_TYPE:STRING
    Sets the build type for make based generators. Possible - values are Release, Debug, RelWithDebInfo and MiniSizeRel. On + values are Release, Debug, RelWithDebInfo and MinSizeRel. On systems like Visual Studio the user sets the build type with the IDE settings.
    @@ -251,32 +251,87 @@ -DLLVM_TARGETS_TO_BUILD="X86;PowerPC;Alpha".
    LLVM_BUILD_TOOLS:BOOL
    -
    Build LLVM tools. Defaults to ON.
    +
    Build LLVM tools. Defaults to ON. Targets for building each tool + are generated in any case. You can build an tool separately by + invoking its target. For example, you can build llvm-as + with a makefile-based system executing make llvm-as on the + root of your build directory.
    + +
    LLVM_INCLUDE_TOOLS:BOOL
    +
    Generate build targets for the LLVM tools. Defaults to + ON. You can use that option for disabling the generation of build + targets for the LLVM tools.
    LLVM_BUILD_EXAMPLES:BOOL
    -
    Build LLVM examples. Defaults to ON.
    +
    Build LLVM examples. Defaults to OFF. Targets for building each + example are generated in any case. See documentation + for LLVM_BUILD_TOOLS above for more details.
    + +
    LLVM_INCLUDE_EXAMPLES:BOOL
    +
    Generate build targets for the LLVM examples. Defaults to + ON. You can use that option for disabling the generation of build + targets for the LLVM examples.
    + +
    LLVM_BUILD_TESTS:BOOL
    +
    Build LLVM unit tests. Defaults to OFF. Targets for building + each unit test are generated in any case. You can build a specific + unit test with the target UnitTestNameTests (where at this + time UnitTestName can be ADT, Analysis, ExecutionEngine, + JIT, Support, Transform, VMCore; see the subdirectories + of unittests for an updated list.) It is possible to build + all unit tests with the target UnitTests.
    + +
    LLVM_INCLUDE_TESTS:BOOL
    +
    Generate build targets for the LLVM unit tests. Defaults to + ON. You can use that option for disabling the generation of build + targets for the LLVM unit tests.
    LLVM_ENABLE_THREADS:BOOL
    Build with threads support, if available. Defaults to ON.
    LLVM_ENABLE_ASSERTIONS:BOOL
    -
    Enables code assertions. Defaults to ON if and only if +
    Enables code assertions. Defaults to OFF if and only if CMAKE_BUILD_TYPE is Release.
    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.
    +
    Add the -fPIC flag for the compiler command-line, if the + compiler supports this flag. Some systems, like Windows, do not + need this flag. Defaults to ON.
    + +
    LLVM_ENABLE_WARNINGS:BOOL
    +
    Enable all compiler warnings. Defaults to ON.
    + +
    LLVM_ENABLE_PEDANTIC:BOOL
    +
    Enable pedantic mode. This disable compiler specific extensions, is + possible. Defaults to ON.
    + +
    LLVM_ENABLE_WERROR:BOOL
    +
    Stop and fail build, if a compiler warning is + triggered. 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.
    + option is available only on some 64-bits unix systems. Defaults to + OFF. + +
    LLVM_TARGET_ARCH:STRING
    +
    LLVM target to use for native code generation. This is required + for JIT generation. It defaults to "host", meaning that it shall + pick the architecture of the machine where LLVM is being built. If + you are cross-compiling, set it to the target architecture + name.
    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.
    + +
    LLVM_LIT_ARGS:STRING
    +
    Arguments given to lit. + make check and make clang-test are affected. + By default, "-sv --no-progress-bar" + on Visual C++ and Xcode, + "-sv" on others.
    @@ -289,9 +344,15 @@
    -

    LLVM testing is not supported on Visual Studio.

    +

    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:

    -

    TODO

    +
    +

    make check

    +
    + +

    Testing is not supported on Visual Studio.

    @@ -311,6 +372,9 @@ this section for a quick solution.

    +

    Also see the LLVM-specific variables + section for variables used when cross-compiling.

    + @@ -321,7 +385,38 @@
    -

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

    @@ -350,7 +445,7 @@ Oscar Fuentes
    LLVM Compiler Infrastructure
    - 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) $