From 68cb31901c590cabceee6e6356d62c84142114cb Mon Sep 17 00:00:00 2001 From: mike-m Date: Thu, 6 May 2010 23:45:43 +0000 Subject: Overhauled llvm/clang docs builds. Closes PR6613. NOTE: 2nd part changeset for cfe trunk to follow. *** PRE-PATCH ISSUES ADDRESSED - clang api docs fail build from objdir - clang/llvm api docs collide in install PREFIX/ - clang/llvm main docs collide in install - clang/llvm main docs have full of hard coded destination assumptions and make use of absolute root in static html files; namely CommandGuide tools hard codes a website destination for cross references and some html cross references assume website root paths *** IMPROVEMENTS - bumped Doxygen from 1.4.x -> 1.6.3 - splits llvm/clang docs into 'main' and 'api' (doxygen) build trees - provide consistent, reliable doc builds for both main+api docs - support buid vs. install vs. website intentions - support objdir builds - document targets with 'make help' - correct clean and uninstall operations - use recursive dir delete only where absolutely necessary - added call function fn.RMRF which safeguards against botched 'rm -rf'; if any target (or any variable is evaluated) which attempts to remove any dirs which match a hard-coded 'safelist', a verbose error will be printed and make will error-stop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103213 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CMake.html | 384 -------------------------------------------------------- 1 file changed, 384 deletions(-) delete mode 100644 docs/CMake.html (limited to 'docs/CMake.html') diff --git a/docs/CMake.html b/docs/CMake.html deleted file mode 100644 index 40a2cec8e9..0000000000 --- a/docs/CMake.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - Building LLVM with CMake - - - -
- Building LLVM with CMake -
- - - -
-

Written by Oscar 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 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. -

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

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.

- -
- - -
- 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 MinSizeRel. 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.
- -
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.
- -
CMAKE_CXX_FLAGS:STRING
-
Extra flags to use when compiling C++ source files.
- -
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_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_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_ENABLE_THREADS:BOOL
-
Build with threads support, if available. Defaults to ON.
- -
LLVM_ENABLE_ASSERTIONS:BOOL
-
Enables code assertions. Defaults to OFF if and only if - CMAKE_BUILD_TYPE is Release.
- -
LLVM_ENABLE_PIC:BOOL
-
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.
- -
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.
-
- -
- - -
- Executing the test suite -
- - -
- -

LLVM testing is not supported on Visual Studio.

- -

TODO

- -
- - -
- Cross compiling -
- - -
- -

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.

- -
- - -
- Embedding LLVM in your project -
- - -
- -

TODO

- -
- - - - -
- Compiler/Platform specific topics -
- - -
- -

Notes for specific compilers and/or platforms.

- -
- - - -
-
- Valid CSS - Valid HTML 4.01 - - Oscar Fuentes
- LLVM Compiler Infrastructure
- Last modified: $Date: 2008-12-31 03:59:36 +0100 (Wed, 31 Dec 2008) $ -
- - - -- cgit v1.2.3