X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FCMake.html;h=0bafedd9b0930254569a67348b90efe9fde7885c;hb=a75ce9f5d2236d93c117e861e60e6f3f748c9555;hp=606d3995af36f72e35555e6542624e7ef553b915;hpb=cbdbcb12fcde2ca5bc5b4a86307bb451abb0502b;p=oota-llvm.git diff --git a/docs/CMake.html b/docs/CMake.html index 606d3995af3..0bafedd9b09 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -67,8 +67,8 @@
    -
  1. Download - and install CMake. Version 2.6.2 is the minimum required.

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

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

    @@ -180,7 +180,7 @@

    Variables are stored on the CMake cache. This is a file - named CMakeCache.txt on the root of the build + 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 @@ -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.
    @@ -217,6 +217,11 @@
    Path where LLVM will be installed if "make install" is invoked or the "INSTALL" target is built.
    +
    LLVM_LIBDIR_SUFFIX:STRING
    +
    Extra suffix to append to the directory where libraries are to + be installed. On a 64-bit architecture, one could use + -DLLVM_LIBDIR_SUFFIX=64 to install libraries to /usr/lib64.
    +
    CMAKE_C_FLAGS:STRING
    Extra flags to use when compiling C source files.
    @@ -245,31 +250,94 @@ to X86. On the other cases defaults to all. Example: -DLLVM_TARGETS_TO_BUILD="X86;PowerPC;Alpha". +
    LLVM_BUILD_TOOLS:BOOL
    +
    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 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_APPEND_VC_REV:BOOL
    +
    Append version control revision info (svn revision number or git + revision id) to LLVM version string (stored in the PACKAGE_VERSION + macro). For this to work cmake must be invoked before the + build. Defaults to OFF.
    +
    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_PLO_FLAGS:STRING
    -
    Extra flags for creating partially linked objects. Visual C++ - does not use this.
    +
    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.
    @@ -282,9 +350,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.

    @@ -304,6 +378,9 @@ this section for a quick solution.

    +

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

    + @@ -314,7 +391,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.)

    @@ -332,26 +440,6 @@ - - - -
    - -

    For linking the JIT into your executable, add

    - -
    -

    /INCLUDE:_X86TargetMachineModule

    -
    - -

    to your linker options. This is required for adding the relevant - LLVM object code to the executable. Not doing this will result on - some methods returning NULL (ExecutionEngine::create, for - instance).

    - -
    -
    @@ -363,7 +451,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) $