<div dir="ltr">Could you please change back to Unix line endings?</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 28, 2016 at 10:59 AM, Mike Spertus via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mps<br>
Date: Mon Mar 28 12:59:40 2016<br>
New Revision: 264602<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=264602&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=264602&view=rev</a><br>
Log:<br>
Forgot to commit this file in revision 264601<br>
<br>
<br>
Modified:<br>
  llvm/trunk/CMakeLists.txt<br>
<br>
Modified: llvm/trunk/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=264602&r1=264601&r2=264602&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=264602&r1=264601&r2=264602&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/CMakeLists.txt (original)<br>
+++ llvm/trunk/CMakeLists.txt Mon Mar 28 12:59:40 2016<br>
@@ -1,789 +1,800 @@<br>
-# See docs/CMake.html for instructions about how to build LLVM with CMake.<br>
-<br>
-cmake_minimum_required(VERSION 2.8.12.2)<br>
-<br>
-if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)<br>
-Â message(STATUS "No build type selected, default to Debug")<br>
-Â set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (default Debug)")<br>
-endif()<br>
-<br>
-if(POLICY CMP0022)<br>
-Â cmake_policy(SET CMP0022 NEW) # automatic when 2.8.12 is required<br>
-endif()<br>
-<br>
-if (POLICY CMP0051)<br>
-Â # CMake 3.1 and higher include generator expressions of the form<br>
- # $<TARGETLIB:obj> in the SOURCES property. These need to be<br>
-Â # stripped everywhere that access the SOURCES property, so we just<br>
-Â # defer to the OLD behavior of not including generator expressions<br>
-Â # in the output for now.<br>
-Â cmake_policy(SET CMP0051 OLD)<br>
-endif()<br>
-<br>
-if(CMAKE_VERSION VERSION_LESS 3.1.20141117)<br>
-Â set(cmake_3_2_USES_TERMINAL)<br>
-else()<br>
-Â set(cmake_3_2_USES_TERMINAL USES_TERMINAL)<br>
-endif()<br>
-<br>
-if(NOT DEFINED LLVM_VERSION_MAJOR)<br>
-Â set(LLVM_VERSION_MAJOR 3)<br>
-endif()<br>
-if(NOT DEFINED LLVM_VERSION_MINOR)<br>
-Â set(LLVM_VERSION_MINOR 9)<br>
-endif()<br>
-if(NOT DEFINED LLVM_VERSION_PATCH)<br>
-Â set(LLVM_VERSION_PATCH 0)<br>
-endif()<br>
-if(NOT DEFINED LLVM_VERSION_SUFFIX)<br>
-Â set(LLVM_VERSION_SUFFIX svn)<br>
-endif()<br>
-<br>
-if (POLICY CMP0048)<br>
-Â cmake_policy(SET CMP0048 NEW)<br>
-Â set(cmake_3_0_PROJ_VERSION<br>
-Â Â VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH})<br>
-Â set(cmake_3_0_LANGUAGES LANGUAGES)<br>
-endif()<br>
-<br>
-if (NOT PACKAGE_VERSION)<br>
-Â set(PACKAGE_VERSION<br>
-Â Â "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}")<br>
-endif()<br>
-<br>
-project(LLVM<br>
-Â ${cmake_3_0_PROJ_VERSION}<br>
-Â ${cmake_3_0_LANGUAGES}<br>
-Â C CXX ASM)<br>
-<br>
-# The following only works with the Ninja generator in CMake >= 3.0.<br>
-set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING<br>
-Â "Define the maximum number of concurrent compilation jobs.")<br>
-if(LLVM_PARALLEL_COMPILE_JOBS)<br>
-Â if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")<br>
-Â Â message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.")<br>
-Â else()<br>
-Â Â set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS})<br>
-Â Â set(CMAKE_JOB_POOL_COMPILE compile_job_pool)<br>
-Â endif()<br>
-endif()<br>
-<br>
-set(LLVM_BUILD_GLOBAL_ISEL OFF CACHE BOOL "Experimental: Build GlobalISel")<br>
-if(LLVM_BUILD_GLOBAL_ISEL)<br>
-Â add_definitions(-DLLVM_BUILD_GLOBAL_ISEL)<br>
-endif()<br>
-<br>
-set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING<br>
-Â "Define the maximum number of concurrent link jobs.")<br>
-if(LLVM_PARALLEL_LINK_JOBS)<br>
-Â if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")<br>
-Â Â message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.")<br>
-Â else()<br>
-Â Â set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS})<br>
-Â Â set(CMAKE_JOB_POOL_LINK link_job_pool)<br>
-Â endif()<br>
-endif()<br>
-<br>
-# Add path for custom modules<br>
-set(CMAKE_MODULE_PATH<br>
-Â ${CMAKE_MODULE_PATH}<br>
-Â "${CMAKE_CURRENT_SOURCE_DIR}/cmake"<br>
-Â "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"<br>
-Â )<br>
-<br>
-# Generate a CompilationDatabase (compile_commands.json file) for our build,<br>
-# for use by clang_complete, YouCompleteMe, etc.<br>
-set(CMAKE_EXPORT_COMPILE_COMMANDS 1)<br>
-<br>
-option(LLVM_INSTALL_UTILS "Include utility binaries in the 'install' target." OFF)<br>
-<br>
-option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)<br>
-<br>
-option(LLVM_USE_FOLDERS "Enable solution folders in Visual Studio. Disable for Express versions." ON)<br>
-if ( LLVM_USE_FOLDERS )<br>
-Â set_property(GLOBAL PROPERTY USE_FOLDERS ON)<br>
-endif()<br>
-<br>
-include(VersionFromVCS)<br>
-<br>
-option(LLVM_APPEND_VC_REV<br>
-Â "Append the version control system revision id to LLVM version" OFF)<br>
-<br>
-if( LLVM_APPEND_VC_REV )<br>
-Â add_version_info_from_vcs(PACKAGE_VERSION)<br>
-endif()<br>
-<br>
-set(PACKAGE_NAME LLVM)<br>
-set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")<br>
-set(PACKAGE_BUGREPORT "<a href="http://llvm.org/bugs/" rel="noreferrer" target="_blank">http://llvm.org/bugs/</a>")<br>
-<br>
-set(BUG_REPORT_URL "${PACKAGE_BUGREPORT}" CACHE STRING<br>
-Â "Default URL where bug reports are to be submitted.")<br>
-<br>
-# Configure CPack.<br>
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "LLVM")<br>
-set(CPACK_PACKAGE_VENDOR "LLVM")<br>
-set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR})<br>
-set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR})<br>
-set(CPACK_PACKAGE_VERSION_PATCH ${LLVM_VERSION_PATCH})<br>
-set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})<br>
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")<br>
-set(CPACK_NSIS_COMPRESSOR "/SOLID lzma \r\n SetCompressorDictSize 32")<br>
-if(WIN32 AND NOT UNIX)<br>
-Â set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "LLVM")<br>
-Â set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_logo.bmp")<br>
-Â set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")<br>
-Â set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")<br>
-Â set(CPACK_NSIS_MODIFY_PATH "ON")<br>
-Â set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON")<br>
-Â set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS<br>
-Â Â "ExecWait '$INSTDIR/tools/msbuild/install.bat'")<br>
-Â set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS<br>
-Â Â "ExecWait '$INSTDIR/tools/msbuild/uninstall.bat'")<br>
-Â if( CMAKE_CL_64 )<br>
-Â Â set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")<br>
-Â endif()<br>
-endif()<br>
-include(CPack)<br>
-<br>
-# Sanity check our source directory to make sure that we are not trying to<br>
-# generate an in-tree build (unless on MSVC_IDE, where it is ok), and to make<br>
-# sure that we don't have any stray generated files lying around in the tree<br>
-# (which would end up getting picked up by header search, instead of the correct<br>
-# versions).<br>
-if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE )<br>
-Â message(FATAL_ERROR "In-source builds are not allowed.<br>
-CMake would overwrite the makefiles distributed with LLVM.<br>
-Please create a directory and run cmake from there, passing the path<br>
-to this source directory as the last argument.<br>
-This process created the file `CMakeCache.txt' and the directory `CMakeFiles'.<br>
-Please delete them.")<br>
-endif()<br>
-if( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )<br>
-Â file(GLOB_RECURSE<br>
-Â Â tablegenned_files_on_include_dir<br>
-Â Â "${CMAKE_CURRENT_SOURCE_DIR}/include/llvm/*.gen")<br>
-Â file(GLOB_RECURSE<br>
-Â Â tablegenned_files_on_lib_dir<br>
-Â Â "${CMAKE_CURRENT_SOURCE_DIR}/lib/Target/*.inc")<br>
-Â if( tablegenned_files_on_include_dir OR tablegenned_files_on_lib_dir)<br>
-Â Â message(FATAL_ERROR "Apparently there is a previous in-source build,<br>
-probably as the result of running `configure' and `make' on<br>
-${CMAKE_CURRENT_SOURCE_DIR}.<br>
-This may cause problems. The suspicious files are:<br>
-${tablegenned_files_on_lib_dir}<br>
-${tablegenned_files_on_include_dir}<br>
-Please clean the source directory.")<br>
-Â endif()<br>
-endif()<br>
-<br>
-string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)<br>
-<br>
-if (CMAKE_BUILD_TYPE AND<br>
-Â Â NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$")<br>
-Â message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")<br>
-endif()<br>
-<br>
-set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )<br>
-<br>
-# They are used as destination of target generators.<br>
-set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)<br>
-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})<br>
-if(WIN32 OR CYGWIN)<br>
-Â # DLL platform -- put DLLs into bin.<br>
-Â set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})<br>
-else()<br>
-Â set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR})<br>
-endif()<br>
-<br>
-# Each of them corresponds to llvm-config's.<br>
-set(LLVM_TOOLS_BINARY_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) # --bindir<br>
-set(LLVM_LIBRARY_DIRÂ Â Â ${LLVM_LIBRARY_OUTPUT_INTDIR}) # --libdir<br>
-set(LLVM_MAIN_SRC_DIRÂ Â Â ${CMAKE_CURRENT_SOURCE_DIR}Â ) # --src-root<br>
-set(LLVM_MAIN_INCLUDE_DIR ${LLVM_MAIN_SRC_DIR}/include ) # --includedir<br>
-set(LLVM_BINARY_DIRÂ Â Â Â ${CMAKE_CURRENT_BINARY_DIR}Â ) # --prefix<br>
-<br>
-set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples)<br>
-set(LLVM_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)<br>
-<br>
-set(LLVM_ALL_TARGETS<br>
-Â AArch64<br>
-Â AMDGPU<br>
-Â ARM<br>
-Â BPF<br>
-Â CppBackend<br>
-Â Hexagon<br>
-Â Mips<br>
-Â MSP430<br>
-Â NVPTX<br>
-Â PowerPC<br>
-Â Sparc<br>
-Â SystemZ<br>
-Â X86<br>
-Â XCore<br>
-Â )<br>
-<br>
-# List of targets with JIT support:<br>
-set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Mips SystemZ)<br>
-<br>
-set(LLVM_TARGETS_TO_BUILD "all"<br>
-Â Â CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")<br>
-<br>
-set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ""<br>
-Â CACHE STRING "Semicolon-separated list of experimental targets to build.")<br>
-<br>
-option(BUILD_SHARED_LIBS<br>
-Â "Build all libraries as shared libraries instead of static" OFF)<br>
-<br>
-option(LLVM_ENABLE_TIMESTAMPS "Enable embedding timestamp information in build" ON)<br>
-if(LLVM_ENABLE_TIMESTAMPS)<br>
-Â set(ENABLE_TIMESTAMPS 1)<br>
-endif()<br>
-<br>
-option(LLVM_ENABLE_BACKTRACES "Enable embedding backtraces on crash." ON)<br>
-if(LLVM_ENABLE_BACKTRACES)<br>
-Â set(ENABLE_BACKTRACES 1)<br>
-endif()<br>
-<br>
-option(LLVM_ENABLE_CRASH_OVERRIDES "Enable crash overrides." ON)<br>
-if(LLVM_ENABLE_CRASH_OVERRIDES)<br>
-Â set(ENABLE_CRASH_OVERRIDES 1)<br>
-endif()<br>
-<br>
-option(LLVM_ENABLE_FFI "Use libffi to call external functions from the interpreter" OFF)<br>
-set(FFI_LIBRARY_DIR "" CACHE PATH "Additional directory, where CMake should search for libffi.so")<br>
-set(FFI_INCLUDE_DIR "" CACHE PATH "Additional directory, where CMake should search for ffi.h or ffi/ffi.h")<br>
-<br>
-set(LLVM_TARGET_ARCH "host"<br>
-Â CACHE STRING "Set target to use for LLVM JIT or use \"host\" for automatic detection.")<br>
-<br>
-option(LLVM_ENABLE_TERMINFO "Use terminfo database if available." ON)<br>
-<br>
-option(LLVM_ENABLE_THREADS "Use threads if available." ON)<br>
-<br>
-option(LLVM_ENABLE_ZLIB "Use zlib for compression/decompression if available." ON)<br>
-<br>
-if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )<br>
-Â set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )<br>
-endif()<br>
-<br>
-set(LLVM_TARGETS_TO_BUILD<br>
-Â Â ${LLVM_TARGETS_TO_BUILD}<br>
-Â Â ${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD})<br>
-list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)<br>
-<br>
-include(AddLLVMDefinitions)<br>
-<br>
-option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON)<br>
-option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON)<br>
-option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF)<br>
-option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF)<br>
-option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF)<br>
-option(LLVM_ENABLE_LIBCXXABI "Use libc++abi when using libc++." OFF)<br>
-option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)<br>
-option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)<br>
-<br>
-if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )<br>
-Â option(LLVM_ENABLE_ASSERTIONS "Enable assertions" OFF)<br>
-else()<br>
-Â option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)<br>
-endif()<br>
-<br>
-set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING<br>
- "Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")<br>
-<br>
-option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN<br>
-Â Â Â Â "Set to ON to force using an old, unsupported host toolchain." OFF)<br>
-<br>
-option(LLVM_USE_INTEL_JITEVENTS<br>
-Â "Use Intel JIT API to inform Intel(R) VTune(TM) Amplifier XE 2011 about JIT code"<br>
-Â OFF)<br>
-<br>
-if( LLVM_USE_INTEL_JITEVENTS )<br>
-Â # Verify we are on a supported platform<br>
-Â if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
-Â Â message(FATAL_ERROR<br>
-Â Â Â "Intel JIT API support is available on Linux and Windows only.")<br>
-Â endif()<br>
-endif( LLVM_USE_INTEL_JITEVENTS )<br>
-<br>
-option(LLVM_USE_OPROFILE<br>
-Â "Use opagent JIT interface to inform OProfile about JIT code" OFF)<br>
-<br>
-option(LLVM_EXTERNALIZE_DEBUGINFO<br>
-Â "Generate dSYM files and strip executables and libraries (Darwin Only)" OFF)<br>
-<br>
-# If enabled, verify we are on a platform that supports oprofile.<br>
-if( LLVM_USE_OPROFILE )<br>
-Â if( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
-Â Â message(FATAL_ERROR "OProfile support is available on Linux only.")<br>
-Â endif( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
-endif( LLVM_USE_OPROFILE )<br>
-<br>
-set(LLVM_USE_SANITIZER "" CACHE STRING<br>
-Â "Define the sanitizer used to build binaries and tests.")<br>
-<br>
-option(LLVM_USE_SPLIT_DWARF<br>
-Â "Use -gsplit-dwarf when compiling llvm." OFF)<br>
-<br>
-option(WITH_POLLY "Build LLVM with Polly" ON)<br>
-option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF)<br>
-<br>
-# Define an option controlling whether we should build for 32-bit on 64-bit<br>
-# platforms, where supported.<br>
-if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )<br>
-Â # TODO: support other platforms and toolchains.<br>
-Â option(LLVM_BUILD_32_BITS "Build 32 bits executables and libraries." OFF)<br>
-endif()<br>
-<br>
-# Define the default arguments to use with 'lit', and an option for the user to<br>
-# override.<br>
-set(LIT_ARGS_DEFAULT "-sv")<br>
-if (MSVC_IDE OR XCODE)<br>
-Â set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar")<br>
-endif()<br>
-set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")<br>
-<br>
-# On Win32 hosts, provide an option to specify the path to the GnuWin32 tools.<br>
-if( WIN32 AND NOT CYGWIN )<br>
-Â set(LLVM_LIT_TOOLS_DIR "" CACHE PATH "Path to GnuWin32 tools")<br>
-endif()<br>
-<br>
-# Define options to control the inclusion and default build behavior for<br>
-# components which may not strictly be necessary (tools, examples, and tests).<br>
-#<br>
-# This is primarily to support building smaller or faster project files.<br>
-option(LLVM_INCLUDE_TOOLS "Generate build targets for the LLVM tools." ON)<br>
-option(LLVM_BUILD_TOOLS<br>
-Â "Build the LLVM tools. If OFF, just generate build targets." ON)<br>
-<br>
-option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." ON)<br>
-<br>
-option(LLVM_BUILD_RUNTIME<br>
-Â "Build the LLVM runtime libraries." ON)<br>
-option(LLVM_BUILD_EXAMPLES<br>
-Â "Build the LLVM example programs. If OFF, just generate build targets." OFF)<br>
-option(LLVM_INCLUDE_EXAMPLES "Generate build targets for the LLVM examples" ON)<br>
-<br>
-option(LLVM_BUILD_TESTS<br>
-Â "Build LLVM unit tests. If OFF, just generate build targets." OFF)<br>
-option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON)<br>
-option(LLVM_INCLUDE_GO_TESTS "Include the Go bindings tests in test build targets." ON)<br>
-<br>
-option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF)<br>
-option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON)<br>
-option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm API documentation." OFF)<br>
-option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)<br>
-<br>
-option (LLVM_BUILD_EXTERNAL_COMPILER_RT<br>
-Â "Build compiler-rt as an external project." OFF)<br>
-<br>
-# You can configure which libraries from LLVM you want to include in the<br>
-# shared library by setting LLVM_DYLIB_COMPONENTS to a semi-colon delimited<br>
-# list of LLVM components. All component names handled by llvm-config are valid.<br>
-if(NOT DEFINED LLVM_DYLIB_COMPONENTS)<br>
-Â set(LLVM_DYLIB_COMPONENTS "all" CACHE STRING<br>
-Â Â "Semicolon-separated list of components to include in libLLVM, or \"all\".")<br>
-endif()<br>
-option(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF)<br>
-option(LLVM_BUILD_LLVM_C_DYLIB "Build libllvm-c re-export library (Darwin Only)" OFF)<br>
-set(LLVM_BUILD_LLVM_DYLIB_default OFF)<br>
-if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LLVM_C_DYLIB)<br>
-Â set(LLVM_BUILD_LLVM_DYLIB_default ON)<br>
-endif()<br>
-option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default})<br>
-<br>
-option(LLVM_OPTIMIZED_TABLEGEN "Force TableGen to be built with optimization" OFF)<br>
-if(CMAKE_CROSSCOMPILING OR (LLVM_OPTIMIZED_TABLEGEN AND LLVM_ENABLE_ASSERTIONS))<br>
-Â set(LLVM_USE_HOST_TOOLS ON)<br>
-endif()<br>
-<br>
-# All options referred to from HandleLLVMOptions have to be specified<br>
-# BEFORE this include, otherwise options will not be correctly set on<br>
-# first cmake run<br>
-include(config-ix)<br>
-<br>
-string(REPLACE "Native" ${LLVM_NATIVE_ARCH}<br>
-Â LLVM_TARGETS_TO_BUILD "${LLVM_TARGETS_TO_BUILD}")<br>
-list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)<br>
-<br>
-# By default, we target the host, but this can be overridden at CMake<br>
-# invocation time.<br>
-set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING<br>
-Â "Default target for which LLVM will generate code." )<br>
-set(TARGET_TRIPLE "${LLVM_DEFAULT_TARGET_TRIPLE}")<br>
-<br>
-include(HandleLLVMOptions)<br>
-<br>
-# Verify that we can find a Python 2 interpreter. Python 3 is unsupported.<br>
-# FIXME: We should support systems with only Python 3, but that requires work<br>
-# on LLDB.<br>
-set(Python_ADDITIONAL_VERSIONS 2.7)<br>
-include(FindPythonInterp)<br>
-if( NOT PYTHONINTERP_FOUND )<br>
-Â message(FATAL_ERROR<br>
-"Unable to find Python interpreter, required for builds and testing.<br>
-<br>
-Please install Python or specify the PYTHON_EXECUTABLE CMake variable.")<br>
-endif()<br>
-<br>
-if( ${PYTHON_VERSION_STRING} VERSION_LESS 2.7 )<br>
-Â message(FATAL_ERROR "Python 2.7 or newer is required")<br>
-endif()<br>
-<br>
-######<br>
-# LLVMBuild Integration<br>
-#<br>
-# We use llvm-build to generate all the data required by the CMake based<br>
-# build system in one swoop:<br>
-#<br>
-#Â - We generate a file (a CMake fragment) in the object root which contains<br>
-#Â Â all the definitions that are required by CMake.<br>
-#<br>
-#Â - We generate the library table used by llvm-config.<br>
-#<br>
-#Â - We generate the dependencies for the CMake fragment, so that we will<br>
-#Â Â automatically reconfigure outselves.<br>
-<br>
-set(LLVMBUILDTOOL "${LLVM_MAIN_SRC_DIR}/utils/llvm-build/llvm-build")<br>
-set(LLVMCONFIGLIBRARYDEPENDENCIESINC<br>
-Â "${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")<br>
-set(LLVMBUILDCMAKEFRAG<br>
-Â "${LLVM_BINARY_DIR}/LLVMBuild.cmake")<br>
-<br>
-# Create the list of optional components that are enabled<br>
-if (LLVM_USE_INTEL_JITEVENTS)<br>
-Â set(LLVMOPTIONALCOMPONENTS IntelJITEvents)<br>
-endif (LLVM_USE_INTEL_JITEVENTS)<br>
-if (LLVM_USE_OPROFILE)<br>
-Â set(LLVMOPTIONALCOMPONENTS ${LLVMOPTIONALCOMPONENTS} OProfileJIT)<br>
-endif (LLVM_USE_OPROFILE)<br>
-<br>
-message(STATUS "Constructing LLVMBuild project information")<br>
-execute_process(<br>
-Â COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}<br>
-Â Â Â Â Â Â --native-target "${LLVM_NATIVE_ARCH}"<br>
-Â Â Â Â Â Â --enable-targets "${LLVM_TARGETS_TO_BUILD}"<br>
-Â Â Â Â Â Â --enable-optional-components "${LLVMOPTIONALCOMPONENTS}"<br>
-Â Â Â Â Â Â --write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}<br>
-Â Â Â Â Â Â --write-cmake-fragment ${LLVMBUILDCMAKEFRAG}<br>
-Â Â Â Â Â Â OUTPUT_VARIABLE LLVMBUILDOUTPUT<br>
-Â Â Â Â Â Â ERROR_VARIABLE LLVMBUILDERRORS<br>
-Â Â Â Â Â Â OUTPUT_STRIP_TRAILING_WHITESPACE<br>
-Â Â Â Â Â Â ERROR_STRIP_TRAILING_WHITESPACE<br>
-Â RESULT_VARIABLE LLVMBUILDRESULT)<br>
-<br>
-# On Win32, CMake doesn't properly handle piping the default output/error<br>
-# streams into the GUI console. So, we explicitly catch and report them.<br>
-if( NOT "${LLVMBUILDOUTPUT}" STREQUAL "")<br>
-Â message(STATUS "llvm-build output: ${LLVMBUILDOUTPUT}")<br>
-endif()<br>
-if( NOT "${LLVMBUILDRESULT}" STREQUAL "0" )<br>
-Â message(FATAL_ERROR<br>
-Â Â "Unexpected failure executing llvm-build: ${LLVMBUILDERRORS}")<br>
-endif()<br>
-<br>
-# Include the generated CMake fragment. This will define properties from the<br>
-# LLVMBuild files in a format which is easy to consume from CMake, and will add<br>
-# the dependencies so that CMake will reconfigure properly when the LLVMBuild<br>
-# files change.<br>
-include(${LLVMBUILDCMAKEFRAG})<br>
-<br>
-######<br>
-<br>
-# Configure all of the various header file fragments LLVM uses which depend on<br>
-# configuration variables.<br>
-set(LLVM_ENUM_TARGETS "")<br>
-set(LLVM_ENUM_ASM_PRINTERS "")<br>
-set(LLVM_ENUM_ASM_PARSERS "")<br>
-set(LLVM_ENUM_DISASSEMBLERS "")<br>
-foreach(t ${LLVM_TARGETS_TO_BUILD})<br>
-Â set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} )<br>
-<br>
-Â list(FIND LLVM_ALL_TARGETS ${t} idx)<br>
-Â list(FIND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ${t} idy)<br>
-Â if( idx LESS 0 AND idy LESS 0 )<br>
-Â Â message(FATAL_ERROR "The target `${t}' does not exist.<br>
-Â Â It should be one of\n${LLVM_ALL_TARGETS}")<br>
-Â else()<br>
-Â Â set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${t})\n")<br>
-Â endif()<br>
-<br>
-Â file(GLOB asmp_file "${td}/*AsmPrinter.cpp")<br>
-Â if( asmp_file )<br>
-Â Â set(LLVM_ENUM_ASM_PRINTERS<br>
-Â Â Â "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")<br>
-Â endif()<br>
-Â if( EXISTS ${td}/AsmParser/CMakeLists.txt )<br>
-Â Â set(LLVM_ENUM_ASM_PARSERS<br>
-Â Â Â "${LLVM_ENUM_ASM_PARSERS}LLVM_ASM_PARSER(${t})\n")<br>
-Â endif()<br>
-Â if( EXISTS ${td}/Disassembler/CMakeLists.txt )<br>
-Â Â set(LLVM_ENUM_DISASSEMBLERS<br>
-Â Â Â "${LLVM_ENUM_DISASSEMBLERS}LLVM_DISASSEMBLER(${t})\n")<br>
-Â endif()<br>
-endforeach(t)<br>
-<br>
-# Produce the target definition files, which provide a way for clients to easily<br>
-# include various classes of targets.<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://AsmPrinters.def.in" rel="noreferrer" target="_blank">AsmPrinters.def.in</a><br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/AsmPrinters.def<br>
-Â )<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://AsmParsers.def.in" rel="noreferrer" target="_blank">AsmParsers.def.in</a><br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/AsmParsers.def<br>
-Â )<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://Disassemblers.def.in" rel="noreferrer" target="_blank">Disassemblers.def.in</a><br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/Disassemblers.def<br>
-Â )<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://Targets.def.in" rel="noreferrer" target="_blank">Targets.def.in</a><br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.def<br>
-Â )<br>
-<br>
-# Configure the three LLVM configuration header files.<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake<br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/config.h)<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/llvm-config.h.cmake<br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Config/llvm-config.h)<br>
-configure_file(<br>
-Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/DataTypes.h.cmake<br>
-Â ${LLVM_INCLUDE_DIR}/llvm/Support/DataTypes.h)<br>
-<br>
-# They are not referenced. See set_output_directory().<br>
-set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )<br>
-set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )<br>
-set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )<br>
-<br>
-set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)<br>
-if (APPLE)<br>
-Â set(CMAKE_INSTALL_NAME_DIR "@rpath")<br>
-Â set(CMAKE_INSTALL_RPATH "@executable_path/../lib")<br>
-else(UNIX)<br>
-Â if(NOT DEFINED CMAKE_INSTALL_RPATH)<br>
-Â Â set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")<br>
-Â Â if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
-Â Â Â set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin")<br>
-Â Â Â set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin")<br>
-Â Â endif()<br>
-Â endif(NOT DEFINED CMAKE_INSTALL_RPATH)<br>
-endif()<br>
-<br>
-if(APPLE AND DARWIN_LTO_LIBRARY)<br>
-Â set(CMAKE_EXE_LINKER_FLAGS<br>
-Â Â "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
-Â set(CMAKE_SHARED_LINKER_FLAGS<br>
-Â Â "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
-Â set(CMAKE_MODULE_LINKER_FLAGS<br>
-Â Â "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
-endif()<br>
-<br>
-# Work around a broken bfd ld behavior. When linking a binary with a<br>
-# foo.so library, it will try to find any library that foo.so uses and<br>
-# check its symbols. This is wasteful (the check was done when foo.so<br>
-# was created) and can fail since it is not the dynamic linker and<br>
-# doesn't know how to handle search paths correctly.<br>
-if (UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")<br>
-Â set(CMAKE_EXE_LINKER_FLAGS<br>
-Â Â Â "${CMAKE_EXE_LINKER_FLAGS} -Wl,-allow-shlib-undefined")<br>
-endif()<br>
-<br>
-set(CMAKE_INCLUDE_CURRENT_DIR ON)<br>
-<br>
-include_directories( ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR})<br>
-<br>
-# when crosscompiling import the executable targets from a file<br>
-if(LLVM_USE_HOST_TOOLS)<br>
-Â include(CrossCompile)<br>
-endif(LLVM_USE_HOST_TOOLS)<br>
-if(LLVM_TARGET_IS_CROSSCOMPILE_HOST)<br>
-# Dummy use to avoid CMake Wraning: Manually-specified variables were not used<br>
-# (this is a variable that CrossCompile sets on recursive invocations)<br>
-endif()<br>
-<br>
-if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
-Â # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM<br>
-Â # with libxml2, iconv.h, etc., we must add /usr/local paths.<br>
-Â include_directories("/usr/local/include")<br>
-Â link_directories("/usr/local/lib")<br>
-endif(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
-<br>
-if( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )<br>
-Â Â SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include llvm/Support/Solaris.h")<br>
-endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )<br>
-<br>
-# Make sure we don't get -rdynamic in every binary. For those that need it,<br>
-# use export_executable_symbols(target).<br>
-set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")<br>
-<br>
-set(LLVM_PROFDATA_FILE "" CACHE FILEPATH<br>
-Â "Profiling data file to use when compiling in order to improve runtime performance.")<br>
-<br>
-if(LLVM_PROFDATA_FILE AND EXISTS ${LLVM_PROFDATA_FILE})<br>
-Â if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )<br>
-Â Â add_definitions("-fprofile-instr-use=${LLVM_PROFDATA_FILE}")<br>
-Â else()<br>
-Â Â message(FATAL_ERROR "LLVM_PROFDATA_FILE can only be specified when compiling with clang")<br>
-Â endif()<br>
-endif()<br>
-<br>
-include(AddLLVM)<br>
-include(TableGen)<br>
-<br>
-if( MINGW )<br>
-Â # People report that -O3 is unreliable on MinGW. The traditional<br>
-Â # build also uses -O2 for that reason:<br>
-Â llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")<br>
-endif()<br>
-<br>
-# Put this before tblgen. Else we have a circular dependence.<br>
-add_subdirectory(lib/Support)<br>
-add_subdirectory(lib/TableGen)<br>
-<br>
-add_subdirectory(utils/TableGen)<br>
-<br>
-add_subdirectory(include/llvm)<br>
-<br>
-add_subdirectory(lib)<br>
-<br>
-if( LLVM_INCLUDE_UTILS )<br>
-Â add_subdirectory(utils/FileCheck)<br>
-Â add_subdirectory(utils/PerfectShuffle)<br>
-Â add_subdirectory(utils/count)<br>
-Â add_subdirectory(utils/not)<br>
-Â add_subdirectory(utils/llvm-lit)<br>
-Â add_subdirectory(utils/yaml-bench)<br>
-else()<br>
-Â if ( LLVM_INCLUDE_TESTS )<br>
-Â Â message(FATAL_ERROR "Including tests when not building utils will not work.<br>
-Â Â Either set LLVM_INCLUDE_UTILS to On, or set LLVM_INCLDE_TESTS to Off.")<br>
-Â endif()<br>
-endif()<br>
-<br>
-if(LLVM_INCLUDE_TESTS)<br>
-Â add_subdirectory(utils/unittest)<br>
-endif()<br>
-<br>
-foreach( binding ${LLVM_BINDINGS_LIST} )<br>
-Â if( EXISTS "${LLVM_MAIN_SRC_DIR}/bindings/${binding}/CMakeLists.txt" )<br>
-Â Â add_subdirectory(bindings/${binding})<br>
-Â endif()<br>
-endforeach()<br>
-<br>
-add_subdirectory(projects)<br>
-<br>
-if(WITH_POLLY)<br>
-Â if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)<br>
-Â Â set(WITH_POLLY OFF)<br>
-Â endif()<br>
-endif(WITH_POLLY)<br>
-<br>
-if( LLVM_INCLUDE_TOOLS )<br>
-Â add_subdirectory(tools)<br>
-endif()<br>
-<br>
-if( LLVM_INCLUDE_EXAMPLES )<br>
-Â add_subdirectory(examples)<br>
-endif()<br>
-<br>
-if( LLVM_INCLUDE_TESTS )<br>
-Â if(EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite AND TARGET clang)<br>
-Â Â include(LLVMExternalProjectUtils)<br>
-Â Â llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite<br>
-Â Â Â USE_TOOLCHAIN<br>
-Â Â Â EXCLUDE_FROM_ALL<br>
-Â Â Â NO_INSTALL)<br>
-Â endif()<br>
-Â add_subdirectory(test)<br>
-Â add_subdirectory(unittests)<br>
-Â if (MSVC)<br>
-Â Â # This utility is used to prevent crashing tests from calling Dr. Watson on<br>
-Â Â # Windows.<br>
-Â Â add_subdirectory(utils/KillTheDoctor)<br>
-Â endif()<br>
-<br>
-Â # Add a global check rule now that all subdirectories have been traversed<br>
-Â # and we know the total set of lit testsuites.<br>
-Â get_property(LLVM_LIT_TESTSUITES GLOBAL PROPERTY LLVM_LIT_TESTSUITES)<br>
-Â get_property(LLVM_LIT_PARAMS GLOBAL PROPERTY LLVM_LIT_PARAMS)<br>
-Â get_property(LLVM_LIT_DEPENDS GLOBAL PROPERTY LLVM_LIT_DEPENDS)<br>
-Â get_property(LLVM_LIT_EXTRA_ARGS GLOBAL PROPERTY LLVM_LIT_EXTRA_ARGS)<br>
-Â add_lit_target(check-all<br>
-Â Â "Running all regression tests"<br>
-Â Â ${LLVM_LIT_TESTSUITES}<br>
-Â Â PARAMS ${LLVM_LIT_PARAMS}<br>
-Â Â DEPENDS ${LLVM_LIT_DEPENDS}<br>
-Â Â ARGS ${LLVM_LIT_EXTRA_ARGS}<br>
-Â Â )<br>
-Â add_custom_target(test-depends DEPENDS ${LLVM_LIT_DEPENDS})<br>
-endif()<br>
-<br>
-if (LLVM_INCLUDE_DOCS)<br>
-Â add_subdirectory(docs)<br>
-endif()<br>
-<br>
-add_subdirectory(cmake/modules)<br>
-<br>
-if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)<br>
-Â install(DIRECTORY include/llvm include/llvm-c<br>
-Â Â DESTINATION include<br>
-Â Â COMPONENT llvm-headers<br>
-Â Â FILES_MATCHING<br>
-Â Â PATTERN "*.def"<br>
-Â Â PATTERN "*.h"<br>
-Â Â PATTERN "*.td"<br>
-Â Â PATTERN "*.inc"<br>
-Â Â PATTERN "LICENSE.TXT"<br>
-Â Â PATTERN ".svn" EXCLUDE<br>
-Â Â )<br>
-<br>
-Â install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm<br>
-Â Â DESTINATION include<br>
-Â Â COMPONENT llvm-headers<br>
-Â Â FILES_MATCHING<br>
-Â Â PATTERN "*.def"<br>
-Â Â PATTERN "*.h"<br>
-Â Â PATTERN "*.gen"<br>
-Â Â PATTERN "*.inc"<br>
-Â Â # Exclude include/llvm/CMakeFiles/intrinsics_gen.dir, matched by "*.def"<br>
-Â Â PATTERN "CMakeFiles" EXCLUDE<br>
-Â Â PATTERN "config.h" EXCLUDE<br>
-Â Â PATTERN ".svn" EXCLUDE<br>
-Â Â )<br>
-<br>
-Â if (NOT CMAKE_CONFIGURATION_TYPES)<br>
-Â Â add_custom_target(installhdrs<br>
-Â Â Â Â Â Â Â Â Â Â Â DEPENDS ${name}<br>
-Â Â Â Â Â Â Â Â Â Â Â COMMAND "${CMAKE_COMMAND}"<br>
-Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â -DCMAKE_INSTALL_COMPONENT=llvm-headers<br>
-Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")<br>
-Â endif()<br>
-endif()<br>
-<br>
-# This must be at the end of the LLVM root CMakeLists file because it must run<br>
-# after all targets are created.<br>
-if(LLVM_DISTRIBUTION_COMPONENTS)<br>
-Â if(CMAKE_CONFIGURATION_TYPES)<br>
-Â Â message(FATAL_ERROR "LLVM_DISTRIBUTION_COMPONENTS cannot be specified with multi-configuration generators (i.e. Xcode or Visual Studio)")<br>
-Â endif()<br>
-<br>
-Â add_custom_target(distribution)<br>
-Â add_custom_target(install-distribution)<br>
-Â foreach(target ${LLVM_DISTRIBUTION_COMPONENTS})<br>
-Â Â if(TARGET ${target})<br>
-Â Â Â add_dependencies(distribution ${target})<br>
-Â Â else()<br>
-Â Â Â message(FATAL_ERROR "Specified distribution component '${target}' doesn't have a target")<br>
-Â Â endif()<br>
-<br>
-Â Â if(TARGET install-${target})<br>
-Â Â Â add_dependencies(install-distribution install-${target})<br>
-Â Â else()<br>
-Â Â Â message(FATAL_ERROR "Specified distribution component '${target}' doesn't have an install target")<br>
-Â Â endif()<br>
-Â endforeach()<br>
-endif()<br>
+# See docs/CMake.html for instructions about how to build LLVM with CMake.<br>
+<br>
+cmake_minimum_required(VERSION 2.8.12.2)<br>
+<br>
+if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)<br>
+Â message(STATUS "No build type selected, default to Debug")<br>
+Â set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (default Debug)")<br>
+endif()<br>
+<br>
+if(POLICY CMP0022)<br>
+Â cmake_policy(SET CMP0022 NEW) # automatic when 2.8.12 is required<br>
+endif()<br>
+<br>
+if (POLICY CMP0051)<br>
+Â # CMake 3.1 and higher include generator expressions of the form<br>
+ # $<TARGETLIB:obj> in the SOURCES property. These need to be<br>
+Â # stripped everywhere that access the SOURCES property, so we just<br>
+Â # defer to the OLD behavior of not including generator expressions<br>
+Â # in the output for now.<br>
+Â cmake_policy(SET CMP0051 OLD)<br>
+endif()<br>
+<br>
+if(CMAKE_VERSION VERSION_LESS 3.1.20141117)<br>
+Â set(cmake_3_2_USES_TERMINAL)<br>
+else()<br>
+Â set(cmake_3_2_USES_TERMINAL USES_TERMINAL)<br>
+endif()<br>
+<br>
+if(NOT DEFINED LLVM_VERSION_MAJOR)<br>
+Â set(LLVM_VERSION_MAJOR 3)<br>
+endif()<br>
+if(NOT DEFINED LLVM_VERSION_MINOR)<br>
+Â set(LLVM_VERSION_MINOR 9)<br>
+endif()<br>
+if(NOT DEFINED LLVM_VERSION_PATCH)<br>
+Â set(LLVM_VERSION_PATCH 0)<br>
+endif()<br>
+if(NOT DEFINED LLVM_VERSION_SUFFIX)<br>
+Â set(LLVM_VERSION_SUFFIX svn)<br>
+endif()<br>
+<br>
+if (POLICY CMP0048)<br>
+Â cmake_policy(SET CMP0048 NEW)<br>
+Â set(cmake_3_0_PROJ_VERSION<br>
+Â Â VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH})<br>
+Â set(cmake_3_0_LANGUAGES LANGUAGES)<br>
+endif()<br>
+<br>
+if (NOT PACKAGE_VERSION)<br>
+Â set(PACKAGE_VERSION<br>
+Â Â "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}")<br>
+endif()<br>
+<br>
+project(LLVM<br>
+Â ${cmake_3_0_PROJ_VERSION}<br>
+Â ${cmake_3_0_LANGUAGES}<br>
+Â C CXX ASM)<br>
+<br>
+# The following only works with the Ninja generator in CMake >= 3.0.<br>
+set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING<br>
+Â "Define the maximum number of concurrent compilation jobs.")<br>
+if(LLVM_PARALLEL_COMPILE_JOBS)<br>
+Â if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")<br>
+Â Â message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.")<br>
+Â else()<br>
+Â Â set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS})<br>
+Â Â set(CMAKE_JOB_POOL_COMPILE compile_job_pool)<br>
+Â endif()<br>
+endif()<br>
+<br>
+set(LLVM_BUILD_GLOBAL_ISEL OFF CACHE BOOL "Experimental: Build GlobalISel")<br>
+if(LLVM_BUILD_GLOBAL_ISEL)<br>
+Â add_definitions(-DLLVM_BUILD_GLOBAL_ISEL)<br>
+endif()<br>
+<br>
+set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING<br>
+Â "Define the maximum number of concurrent link jobs.")<br>
+if(LLVM_PARALLEL_LINK_JOBS)<br>
+Â if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")<br>
+Â Â message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.")<br>
+Â else()<br>
+Â Â set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS})<br>
+Â Â set(CMAKE_JOB_POOL_LINK link_job_pool)<br>
+Â endif()<br>
+endif()<br>
+<br>
+# Add path for custom modules<br>
+set(CMAKE_MODULE_PATH<br>
+Â ${CMAKE_MODULE_PATH}<br>
+Â "${CMAKE_CURRENT_SOURCE_DIR}/cmake"<br>
+Â "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"<br>
+Â )<br>
+<br>
+# Generate a CompilationDatabase (compile_commands.json file) for our build,<br>
+# for use by clang_complete, YouCompleteMe, etc.<br>
+set(CMAKE_EXPORT_COMPILE_COMMANDS 1)<br>
+<br>
+option(LLVM_INSTALL_UTILS "Include utility binaries in the 'install' target." OFF)<br>
+<br>
+option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)<br>
+<br>
+option(LLVM_USE_FOLDERS "Enable solution folders in Visual Studio. Disable for Express versions." ON)<br>
+if ( LLVM_USE_FOLDERS )<br>
+Â set_property(GLOBAL PROPERTY USE_FOLDERS ON)<br>
+endif()<br>
+<br>
+include(VersionFromVCS)<br>
+<br>
+option(LLVM_APPEND_VC_REV<br>
+Â "Append the version control system revision id to LLVM version" OFF)<br>
+<br>
+if( LLVM_APPEND_VC_REV )<br>
+Â add_version_info_from_vcs(PACKAGE_VERSION)<br>
+endif()<br>
+<br>
+set(PACKAGE_NAME LLVM)<br>
+set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")<br>
+set(PACKAGE_BUGREPORT "<a href="http://llvm.org/bugs/" rel="noreferrer" target="_blank">http://llvm.org/bugs/</a>")<br>
+<br>
+set(BUG_REPORT_URL "${PACKAGE_BUGREPORT}" CACHE STRING<br>
+Â "Default URL where bug reports are to be submitted.")<br>
+<br>
+# Configure CPack.<br>
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "LLVM")<br>
+set(CPACK_PACKAGE_VENDOR "LLVM")<br>
+set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR})<br>
+set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR})<br>
+set(CPACK_PACKAGE_VERSION_PATCH ${LLVM_VERSION_PATCH})<br>
+set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})<br>
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")<br>
+set(CPACK_NSIS_COMPRESSOR "/SOLID lzma \r\n SetCompressorDictSize 32")<br>
+if(WIN32 AND NOT UNIX)<br>
+Â set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "LLVM")<br>
+Â set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_logo.bmp")<br>
+Â set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")<br>
+Â set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\cmake\\\\nsis_icon.ico")<br>
+Â set(CPACK_NSIS_MODIFY_PATH "ON")<br>
+Â set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON")<br>
+Â set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS<br>
+Â Â "ExecWait '$INSTDIR/tools/msbuild/install.bat'")<br>
+Â set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS<br>
+Â Â "ExecWait '$INSTDIR/tools/msbuild/uninstall.bat'")<br>
+Â if( CMAKE_CL_64 )<br>
+Â Â set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")<br>
+Â endif()<br>
+endif()<br>
+include(CPack)<br>
+<br>
+# Sanity check our source directory to make sure that we are not trying to<br>
+# generate an in-tree build (unless on MSVC_IDE, where it is ok), and to make<br>
+# sure that we don't have any stray generated files lying around in the tree<br>
+# (which would end up getting picked up by header search, instead of the correct<br>
+# versions).<br>
+if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE )<br>
+Â message(FATAL_ERROR "In-source builds are not allowed.<br>
+CMake would overwrite the makefiles distributed with LLVM.<br>
+Please create a directory and run cmake from there, passing the path<br>
+to this source directory as the last argument.<br>
+This process created the file `CMakeCache.txt' and the directory `CMakeFiles'.<br>
+Please delete them.")<br>
+endif()<br>
+if( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )<br>
+Â file(GLOB_RECURSE<br>
+Â Â tablegenned_files_on_include_dir<br>
+Â Â "${CMAKE_CURRENT_SOURCE_DIR}/include/llvm/*.gen")<br>
+Â file(GLOB_RECURSE<br>
+Â Â tablegenned_files_on_lib_dir<br>
+Â Â "${CMAKE_CURRENT_SOURCE_DIR}/lib/Target/*.inc")<br>
+Â if( tablegenned_files_on_include_dir OR tablegenned_files_on_lib_dir)<br>
+Â Â message(FATAL_ERROR "Apparently there is a previous in-source build,<br>
+probably as the result of running `configure' and `make' on<br>
+${CMAKE_CURRENT_SOURCE_DIR}.<br>
+This may cause problems. The suspicious files are:<br>
+${tablegenned_files_on_lib_dir}<br>
+${tablegenned_files_on_include_dir}<br>
+Please clean the source directory.")<br>
+Â endif()<br>
+endif()<br>
+<br>
+string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)<br>
+<br>
+if (CMAKE_BUILD_TYPE AND<br>
+Â Â NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$")<br>
+Â message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")<br>
+endif()<br>
+<br>
+set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )<br>
+<br>
+# They are used as destination of target generators.<br>
+set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)<br>
+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})<br>
+if(WIN32 OR CYGWIN)<br>
+Â # DLL platform -- put DLLs into bin.<br>
+Â set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})<br>
+else()<br>
+Â set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR})<br>
+endif()<br>
+<br>
+# Each of them corresponds to llvm-config's.<br>
+set(LLVM_TOOLS_BINARY_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) # --bindir<br>
+set(LLVM_LIBRARY_DIRÂ Â Â ${LLVM_LIBRARY_OUTPUT_INTDIR}) # --libdir<br>
+set(LLVM_MAIN_SRC_DIRÂ Â Â ${CMAKE_CURRENT_SOURCE_DIR}Â ) # --src-root<br>
+set(LLVM_MAIN_INCLUDE_DIR ${LLVM_MAIN_SRC_DIR}/include ) # --includedir<br>
+set(LLVM_BINARY_DIRÂ Â Â Â ${CMAKE_CURRENT_BINARY_DIR}Â ) # --prefix<br>
+<br>
+set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples)<br>
+set(LLVM_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)<br>
+<br>
+set(LLVM_ALL_TARGETS<br>
+Â AArch64<br>
+Â AMDGPU<br>
+Â ARM<br>
+Â BPF<br>
+Â CppBackend<br>
+Â Hexagon<br>
+Â Mips<br>
+Â MSP430<br>
+Â NVPTX<br>
+Â PowerPC<br>
+Â Sparc<br>
+Â SystemZ<br>
+Â X86<br>
+Â XCore<br>
+Â )<br>
+<br>
+# List of targets with JIT support:<br>
+set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Mips SystemZ)<br>
+<br>
+set(LLVM_TARGETS_TO_BUILD "all"<br>
+Â Â CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")<br>
+<br>
+set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ""<br>
+Â CACHE STRING "Semicolon-separated list of experimental targets to build.")<br>
+<br>
+option(BUILD_SHARED_LIBS<br>
+Â "Build all libraries as shared libraries instead of static" OFF)<br>
+<br>
+option(LLVM_ENABLE_TIMESTAMPS "Enable embedding timestamp information in build" ON)<br>
+if(LLVM_ENABLE_TIMESTAMPS)<br>
+Â set(ENABLE_TIMESTAMPS 1)<br>
+endif()<br>
+<br>
+option(LLVM_ENABLE_BACKTRACES "Enable embedding backtraces on crash." ON)<br>
+if(LLVM_ENABLE_BACKTRACES)<br>
+Â set(ENABLE_BACKTRACES 1)<br>
+endif()<br>
+<br>
+option(LLVM_ENABLE_CRASH_OVERRIDES "Enable crash overrides." ON)<br>
+if(LLVM_ENABLE_CRASH_OVERRIDES)<br>
+Â set(ENABLE_CRASH_OVERRIDES 1)<br>
+endif()<br>
+<br>
+option(LLVM_ENABLE_FFI "Use libffi to call external functions from the interpreter" OFF)<br>
+set(FFI_LIBRARY_DIR "" CACHE PATH "Additional directory, where CMake should search for libffi.so")<br>
+set(FFI_INCLUDE_DIR "" CACHE PATH "Additional directory, where CMake should search for ffi.h or ffi/ffi.h")<br>
+<br>
+set(LLVM_TARGET_ARCH "host"<br>
+Â CACHE STRING "Set target to use for LLVM JIT or use \"host\" for automatic detection.")<br>
+<br>
+option(LLVM_ENABLE_TERMINFO "Use terminfo database if available." ON)<br>
+<br>
+option(LLVM_ENABLE_THREADS "Use threads if available." ON)<br>
+<br>
+option(LLVM_ENABLE_ZLIB "Use zlib for compression/decompression if available." ON)<br>
+<br>
+if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )<br>
+Â set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )<br>
+endif()<br>
+<br>
+set(LLVM_TARGETS_TO_BUILD<br>
+Â Â ${LLVM_TARGETS_TO_BUILD}<br>
+Â Â ${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD})<br>
+list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)<br>
+<br>
+include(AddLLVMDefinitions)<br>
+<br>
+option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON)<br>
+option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON)<br>
+option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF)<br>
+option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF)<br>
+option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF)<br>
+option(LLVM_ENABLE_LIBCXXABI "Use libc++abi when using libc++." OFF)<br>
+option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)<br>
+option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)<br>
+<br>
+if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )<br>
+Â option(LLVM_ENABLE_ASSERTIONS "Enable assertions" OFF)<br>
+else()<br>
+Â option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)<br>
+endif()<br>
+<br>
+set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING<br>
+ "Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")<br>
+<br>
+option(LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN<br>
+Â Â Â Â "Set to ON to force using an old, unsupported host toolchain." OFF)<br>
+<br>
+option(LLVM_USE_INTEL_JITEVENTS<br>
+Â "Use Intel JIT API to inform Intel(R) VTune(TM) Amplifier XE 2011 about JIT code"<br>
+Â OFF)<br>
+<br>
+if( LLVM_USE_INTEL_JITEVENTS )<br>
+Â # Verify we are on a supported platform<br>
+Â if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
+Â Â message(FATAL_ERROR<br>
+Â Â Â "Intel JIT API support is available on Linux and Windows only.")<br>
+Â endif()<br>
+endif( LLVM_USE_INTEL_JITEVENTS )<br>
+<br>
+option(LLVM_USE_OPROFILE<br>
+Â "Use opagent JIT interface to inform OProfile about JIT code" OFF)<br>
+<br>
+option(LLVM_EXTERNALIZE_DEBUGINFO<br>
+Â "Generate dSYM files and strip executables and libraries (Darwin Only)" OFF)<br>
+<br>
+# If enabled, verify we are on a platform that supports oprofile.<br>
+if( LLVM_USE_OPROFILE )<br>
+Â if( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
+Â Â message(FATAL_ERROR "OProfile support is available on Linux only.")<br>
+Â endif( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" )<br>
+endif( LLVM_USE_OPROFILE )<br>
+<br>
+set(LLVM_USE_SANITIZER "" CACHE STRING<br>
+Â "Define the sanitizer used to build binaries and tests.")<br>
+<br>
+option(LLVM_USE_SPLIT_DWARF<br>
+Â "Use -gsplit-dwarf when compiling llvm." OFF)<br>
+<br>
+option(WITH_POLLY "Build LLVM with Polly" ON)<br>
+option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF)<br>
+<br>
+# Define an option controlling whether we should build for 32-bit on 64-bit<br>
+# platforms, where supported.<br>
+if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )<br>
+Â # TODO: support other platforms and toolchains.<br>
+Â option(LLVM_BUILD_32_BITS "Build 32 bits executables and libraries." OFF)<br>
+endif()<br>
+<br>
+# Define the default arguments to use with 'lit', and an option for the user to<br>
+# override.<br>
+set(LIT_ARGS_DEFAULT "-sv")<br>
+if (MSVC_IDE OR XCODE)<br>
+Â set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar")<br>
+endif()<br>
+set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")<br>
+<br>
+# On Win32 hosts, provide an option to specify the path to the GnuWin32 tools.<br>
+if( WIN32 AND NOT CYGWIN )<br>
+Â set(LLVM_LIT_TOOLS_DIR "" CACHE PATH "Path to GnuWin32 tools")<br>
+endif()<br>
+<br>
+# Define options to control the inclusion and default build behavior for<br>
+# components which may not strictly be necessary (tools, examples, and tests).<br>
+#<br>
+# This is primarily to support building smaller or faster project files.<br>
+option(LLVM_INCLUDE_TOOLS "Generate build targets for the LLVM tools." ON)<br>
+option(LLVM_BUILD_TOOLS<br>
+Â "Build the LLVM tools. If OFF, just generate build targets." ON)<br>
+<br>
+option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." ON)<br>
+<br>
+option(LLVM_BUILD_RUNTIME<br>
+Â "Build the LLVM runtime libraries." ON)<br>
+option(LLVM_BUILD_EXAMPLES<br>
+Â "Build the LLVM example programs. If OFF, just generate build targets." OFF)<br>
+option(LLVM_INCLUDE_EXAMPLES "Generate build targets for the LLVM examples" ON)<br>
+<br>
+option(LLVM_BUILD_TESTS<br>
+Â "Build LLVM unit tests. If OFF, just generate build targets." OFF)<br>
+option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON)<br>
+option(LLVM_INCLUDE_GO_TESTS "Include the Go bindings tests in test build targets." ON)<br>
+<br>
+option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF)<br>
+option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON)<br>
+option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm API documentation." OFF)<br>
+option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)<br>
+<br>
+option (LLVM_BUILD_EXTERNAL_COMPILER_RT<br>
+Â "Build compiler-rt as an external project." OFF)<br>
+<br>
+# You can configure which libraries from LLVM you want to include in the<br>
+# shared library by setting LLVM_DYLIB_COMPONENTS to a semi-colon delimited<br>
+# list of LLVM components. All component names handled by llvm-config are valid.<br>
+if(NOT DEFINED LLVM_DYLIB_COMPONENTS)<br>
+Â set(LLVM_DYLIB_COMPONENTS "all" CACHE STRING<br>
+Â Â "Semicolon-separated list of components to include in libLLVM, or \"all\".")<br>
+endif()<br>
+option(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF)<br>
+option(LLVM_BUILD_LLVM_C_DYLIB "Build libllvm-c re-export library (Darwin Only)" OFF)<br>
+set(LLVM_BUILD_LLVM_DYLIB_default OFF)<br>
+if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LLVM_C_DYLIB)<br>
+Â set(LLVM_BUILD_LLVM_DYLIB_default ON)<br>
+endif()<br>
+option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default})<br>
+<br>
+option(LLVM_OPTIMIZED_TABLEGEN "Force TableGen to be built with optimization" OFF)<br>
+if(CMAKE_CROSSCOMPILING OR (LLVM_OPTIMIZED_TABLEGEN AND LLVM_ENABLE_ASSERTIONS))<br>
+Â set(LLVM_USE_HOST_TOOLS ON)<br>
+endif()<br>
+<br>
+if (MSVC_IDE AND NOT (MSVC_VERSION LESS 1900))<br>
+Â option(LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION "Configure project to use Visual Studio native visualizers" TRUE)<br>
+else()<br>
+Â set(LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION FALSE CACHE INTERNAL "For Visual Studio 2013, manually copy natvis files to Documents\\Visual Studio 2013\\Visualizers" FORCE)<br>
+endif()<br>
+<br>
+# All options referred to from HandleLLVMOptions have to be specified<br>
+# BEFORE this include, otherwise options will not be correctly set on<br>
+# first cmake run<br>
+include(config-ix)<br>
+<br>
+string(REPLACE "Native" ${LLVM_NATIVE_ARCH}<br>
+Â LLVM_TARGETS_TO_BUILD "${LLVM_TARGETS_TO_BUILD}")<br>
+list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)<br>
+<br>
+# By default, we target the host, but this can be overridden at CMake<br>
+# invocation time.<br>
+set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING<br>
+Â "Default target for which LLVM will generate code." )<br>
+set(TARGET_TRIPLE "${LLVM_DEFAULT_TARGET_TRIPLE}")<br>
+<br>
+include(HandleLLVMOptions)<br>
+<br>
+# Verify that we can find a Python 2 interpreter. Python 3 is unsupported.<br>
+# FIXME: We should support systems with only Python 3, but that requires work<br>
+# on LLDB.<br>
+set(Python_ADDITIONAL_VERSIONS 2.7)<br>
+include(FindPythonInterp)<br>
+if( NOT PYTHONINTERP_FOUND )<br>
+Â message(FATAL_ERROR<br>
+"Unable to find Python interpreter, required for builds and testing.<br>
+<br>
+Please install Python or specify the PYTHON_EXECUTABLE CMake variable.")<br>
+endif()<br>
+<br>
+if( ${PYTHON_VERSION_STRING} VERSION_LESS 2.7 )<br>
+Â message(FATAL_ERROR "Python 2.7 or newer is required")<br>
+endif()<br>
+<br>
+######<br>
+# LLVMBuild Integration<br>
+#<br>
+# We use llvm-build to generate all the data required by the CMake based<br>
+# build system in one swoop:<br>
+#<br>
+#Â - We generate a file (a CMake fragment) in the object root which contains<br>
+#Â Â all the definitions that are required by CMake.<br>
+#<br>
+#Â - We generate the library table used by llvm-config.<br>
+#<br>
+#Â - We generate the dependencies for the CMake fragment, so that we will<br>
+#Â Â automatically reconfigure outselves.<br>
+<br>
+set(LLVMBUILDTOOL "${LLVM_MAIN_SRC_DIR}/utils/llvm-build/llvm-build")<br>
+set(LLVMCONFIGLIBRARYDEPENDENCIESINC<br>
+Â "${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")<br>
+set(LLVMBUILDCMAKEFRAG<br>
+Â "${LLVM_BINARY_DIR}/LLVMBuild.cmake")<br>
+<br>
+# Create the list of optional components that are enabled<br>
+if (LLVM_USE_INTEL_JITEVENTS)<br>
+Â set(LLVMOPTIONALCOMPONENTS IntelJITEvents)<br>
+endif (LLVM_USE_INTEL_JITEVENTS)<br>
+if (LLVM_USE_OPROFILE)<br>
+Â set(LLVMOPTIONALCOMPONENTS ${LLVMOPTIONALCOMPONENTS} OProfileJIT)<br>
+endif (LLVM_USE_OPROFILE)<br>
+<br>
+message(STATUS "Constructing LLVMBuild project information")<br>
+execute_process(<br>
+Â COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}<br>
+Â Â Â Â Â Â --native-target "${LLVM_NATIVE_ARCH}"<br>
+Â Â Â Â Â Â --enable-targets "${LLVM_TARGETS_TO_BUILD}"<br>
+Â Â Â Â Â Â --enable-optional-components "${LLVMOPTIONALCOMPONENTS}"<br>
+Â Â Â Â Â Â --write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}<br>
+Â Â Â Â Â Â --write-cmake-fragment ${LLVMBUILDCMAKEFRAG}<br>
+Â Â Â Â Â Â OUTPUT_VARIABLE LLVMBUILDOUTPUT<br>
+Â Â Â Â Â Â ERROR_VARIABLE LLVMBUILDERRORS<br>
+Â Â Â Â Â Â OUTPUT_STRIP_TRAILING_WHITESPACE<br>
+Â Â Â Â Â Â ERROR_STRIP_TRAILING_WHITESPACE<br>
+Â RESULT_VARIABLE LLVMBUILDRESULT)<br>
+<br>
+# On Win32, CMake doesn't properly handle piping the default output/error<br>
+# streams into the GUI console. So, we explicitly catch and report them.<br>
+if( NOT "${LLVMBUILDOUTPUT}" STREQUAL "")<br>
+Â message(STATUS "llvm-build output: ${LLVMBUILDOUTPUT}")<br>
+endif()<br>
+if( NOT "${LLVMBUILDRESULT}" STREQUAL "0" )<br>
+Â message(FATAL_ERROR<br>
+Â Â "Unexpected failure executing llvm-build: ${LLVMBUILDERRORS}")<br>
+endif()<br>
+<br>
+# Include the generated CMake fragment. This will define properties from the<br>
+# LLVMBuild files in a format which is easy to consume from CMake, and will add<br>
+# the dependencies so that CMake will reconfigure properly when the LLVMBuild<br>
+# files change.<br>
+include(${LLVMBUILDCMAKEFRAG})<br>
+<br>
+######<br>
+<br>
+# Configure all of the various header file fragments LLVM uses which depend on<br>
+# configuration variables.<br>
+set(LLVM_ENUM_TARGETS "")<br>
+set(LLVM_ENUM_ASM_PRINTERS "")<br>
+set(LLVM_ENUM_ASM_PARSERS "")<br>
+set(LLVM_ENUM_DISASSEMBLERS "")<br>
+foreach(t ${LLVM_TARGETS_TO_BUILD})<br>
+Â set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} )<br>
+<br>
+Â list(FIND LLVM_ALL_TARGETS ${t} idx)<br>
+Â list(FIND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ${t} idy)<br>
+Â if( idx LESS 0 AND idy LESS 0 )<br>
+Â Â message(FATAL_ERROR "The target `${t}' does not exist.<br>
+Â Â It should be one of\n${LLVM_ALL_TARGETS}")<br>
+Â else()<br>
+Â Â set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${t})\n")<br>
+Â endif()<br>
+<br>
+Â file(GLOB asmp_file "${td}/*AsmPrinter.cpp")<br>
+Â if( asmp_file )<br>
+Â Â set(LLVM_ENUM_ASM_PRINTERS<br>
+Â Â Â "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")<br>
+Â endif()<br>
+Â if( EXISTS ${td}/AsmParser/CMakeLists.txt )<br>
+Â Â set(LLVM_ENUM_ASM_PARSERS<br>
+Â Â Â "${LLVM_ENUM_ASM_PARSERS}LLVM_ASM_PARSER(${t})\n")<br>
+Â endif()<br>
+Â if( EXISTS ${td}/Disassembler/CMakeLists.txt )<br>
+Â Â set(LLVM_ENUM_DISASSEMBLERS<br>
+Â Â Â "${LLVM_ENUM_DISASSEMBLERS}LLVM_DISASSEMBLER(${t})\n")<br>
+Â endif()<br>
+endforeach(t)<br>
+<br>
+# Produce the target definition files, which provide a way for clients to easily<br>
+# include various classes of targets.<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://AsmPrinters.def.in" rel="noreferrer" target="_blank">AsmPrinters.def.in</a><br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/AsmPrinters.def<br>
+Â )<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://AsmParsers.def.in" rel="noreferrer" target="_blank">AsmParsers.def.in</a><br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/AsmParsers.def<br>
+Â )<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://Disassemblers.def.in" rel="noreferrer" target="_blank">Disassemblers.def.in</a><br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/Disassemblers.def<br>
+Â )<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/<a href="http://Targets.def.in" rel="noreferrer" target="_blank">Targets.def.in</a><br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.def<br>
+Â )<br>
+<br>
+# Configure the three LLVM configuration header files.<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake<br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/config.h)<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/llvm-config.h.cmake<br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Config/llvm-config.h)<br>
+configure_file(<br>
+Â ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/DataTypes.h.cmake<br>
+Â ${LLVM_INCLUDE_DIR}/llvm/Support/DataTypes.h)<br>
+<br>
+# They are not referenced. See set_output_directory().<br>
+set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )<br>
+set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )<br>
+set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )<br>
+<br>
+set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)<br>
+if (APPLE)<br>
+Â set(CMAKE_INSTALL_NAME_DIR "@rpath")<br>
+Â set(CMAKE_INSTALL_RPATH "@executable_path/../lib")<br>
+else(UNIX)<br>
+Â if(NOT DEFINED CMAKE_INSTALL_RPATH)<br>
+Â Â set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")<br>
+Â Â if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
+Â Â Â set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin")<br>
+Â Â Â set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin")<br>
+Â Â endif()<br>
+Â endif(NOT DEFINED CMAKE_INSTALL_RPATH)<br>
+endif()<br>
+<br>
+if(APPLE AND DARWIN_LTO_LIBRARY)<br>
+Â set(CMAKE_EXE_LINKER_FLAGS<br>
+Â Â "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
+Â set(CMAKE_SHARED_LINKER_FLAGS<br>
+Â Â "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
+Â set(CMAKE_MODULE_LINKER_FLAGS<br>
+Â Â "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}")<br>
+endif()<br>
+<br>
+# Work around a broken bfd ld behavior. When linking a binary with a<br>
+# foo.so library, it will try to find any library that foo.so uses and<br>
+# check its symbols. This is wasteful (the check was done when foo.so<br>
+# was created) and can fail since it is not the dynamic linker and<br>
+# doesn't know how to handle search paths correctly.<br>
+if (UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")<br>
+Â set(CMAKE_EXE_LINKER_FLAGS<br>
+Â Â Â "${CMAKE_EXE_LINKER_FLAGS} -Wl,-allow-shlib-undefined")<br>
+endif()<br>
+<br>
+set(CMAKE_INCLUDE_CURRENT_DIR ON)<br>
+<br>
+include_directories( ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR})<br>
+<br>
+# when crosscompiling import the executable targets from a file<br>
+if(LLVM_USE_HOST_TOOLS)<br>
+Â include(CrossCompile)<br>
+endif(LLVM_USE_HOST_TOOLS)<br>
+if(LLVM_TARGET_IS_CROSSCOMPILE_HOST)<br>
+# Dummy use to avoid CMake Wraning: Manually-specified variables were not used<br>
+# (this is a variable that CrossCompile sets on recursive invocations)<br>
+endif()<br>
+<br>
+if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
+Â # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM<br>
+Â # with libxml2, iconv.h, etc., we must add /usr/local paths.<br>
+Â include_directories("/usr/local/include")<br>
+Â link_directories("/usr/local/lib")<br>
+endif(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")<br>
+<br>
+if( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )<br>
+Â Â SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include llvm/Support/Solaris.h")<br>
+endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )<br>
+<br>
+# Make sure we don't get -rdynamic in every binary. For those that need it,<br>
+# use export_executable_symbols(target).<br>
+set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")<br>
+<br>
+set(LLVM_PROFDATA_FILE "" CACHE FILEPATH<br>
+Â "Profiling data file to use when compiling in order to improve runtime performance.")<br>
+<br>
+if(LLVM_PROFDATA_FILE AND EXISTS ${LLVM_PROFDATA_FILE})<br>
+Â if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )<br>
+Â Â add_definitions("-fprofile-instr-use=${LLVM_PROFDATA_FILE}")<br>
+Â else()<br>
+Â Â message(FATAL_ERROR "LLVM_PROFDATA_FILE can only be specified when compiling with clang")<br>
+Â endif()<br>
+endif()<br>
+<br>
+include(AddLLVM)<br>
+include(TableGen)<br>
+<br>
+if( MINGW )<br>
+Â # People report that -O3 is unreliable on MinGW. The traditional<br>
+Â # build also uses -O2 for that reason:<br>
+Â llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")<br>
+endif()<br>
+<br>
+# Put this before tblgen. Else we have a circular dependence.<br>
+add_subdirectory(lib/Support)<br>
+add_subdirectory(lib/TableGen)<br>
+<br>
+add_subdirectory(utils/TableGen)<br>
+<br>
+add_subdirectory(include/llvm)<br>
+<br>
+add_subdirectory(lib)<br>
+<br>
+if( LLVM_INCLUDE_UTILS )<br>
+Â add_subdirectory(utils/FileCheck)<br>
+Â add_subdirectory(utils/PerfectShuffle)<br>
+Â add_subdirectory(utils/count)<br>
+Â add_subdirectory(utils/not)<br>
+Â add_subdirectory(utils/llvm-lit)<br>
+Â add_subdirectory(utils/yaml-bench)<br>
+else()<br>
+Â if ( LLVM_INCLUDE_TESTS )<br>
+Â Â message(FATAL_ERROR "Including tests when not building utils will not work.<br>
+Â Â Either set LLVM_INCLUDE_UTILS to On, or set LLVM_INCLDE_TESTS to Off.")<br>
+Â endif()<br>
+endif()<br>
+<br>
+# Use LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION instead of LLVM_INCLUDE_UTILS because it is not really a util<br>
+if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION)<br>
+Â add_subdirectory(utils/LLVMVisualizers)<br>
+endif()<br>
+<br>
+if(LLVM_INCLUDE_TESTS)<br>
+Â add_subdirectory(utils/unittest)<br>
+endif()<br>
+<br>
+foreach( binding ${LLVM_BINDINGS_LIST} )<br>
+Â if( EXISTS "${LLVM_MAIN_SRC_DIR}/bindings/${binding}/CMakeLists.txt" )<br>
+Â Â add_subdirectory(bindings/${binding})<br>
+Â endif()<br>
+endforeach()<br>
+<br>
+add_subdirectory(projects)<br>
+<br>
+if(WITH_POLLY)<br>
+Â if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)<br>
+Â Â set(WITH_POLLY OFF)<br>
+Â endif()<br>
+endif(WITH_POLLY)<br>
+<br>
+if( LLVM_INCLUDE_TOOLS )<br>
+Â add_subdirectory(tools)<br>
+endif()<br>
+<br>
+if( LLVM_INCLUDE_EXAMPLES )<br>
+Â add_subdirectory(examples)<br>
+endif()<br>
+<br>
+if( LLVM_INCLUDE_TESTS )<br>
+Â if(EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite AND TARGET clang)<br>
+Â Â include(LLVMExternalProjectUtils)<br>
+Â Â llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite<br>
+Â Â Â USE_TOOLCHAIN<br>
+Â Â Â EXCLUDE_FROM_ALL<br>
+Â Â Â NO_INSTALL)<br>
+Â endif()<br>
+Â add_subdirectory(test)<br>
+Â add_subdirectory(unittests)<br>
+Â if (MSVC)<br>
+Â Â # This utility is used to prevent crashing tests from calling Dr. Watson on<br>
+Â Â # Windows.<br>
+Â Â add_subdirectory(utils/KillTheDoctor)<br>
+Â endif()<br>
+<br>
+Â # Add a global check rule now that all subdirectories have been traversed<br>
+Â # and we know the total set of lit testsuites.<br>
+Â get_property(LLVM_LIT_TESTSUITES GLOBAL PROPERTY LLVM_LIT_TESTSUITES)<br>
+Â get_property(LLVM_LIT_PARAMS GLOBAL PROPERTY LLVM_LIT_PARAMS)<br>
+Â get_property(LLVM_LIT_DEPENDS GLOBAL PROPERTY LLVM_LIT_DEPENDS)<br>
+Â get_property(LLVM_LIT_EXTRA_ARGS GLOBAL PROPERTY LLVM_LIT_EXTRA_ARGS)<br>
+Â add_lit_target(check-all<br>
+Â Â "Running all regression tests"<br>
+Â Â ${LLVM_LIT_TESTSUITES}<br>
+Â Â PARAMS ${LLVM_LIT_PARAMS}<br>
+Â Â DEPENDS ${LLVM_LIT_DEPENDS}<br>
+Â Â ARGS ${LLVM_LIT_EXTRA_ARGS}<br>
+Â Â )<br>
+Â add_custom_target(test-depends DEPENDS ${LLVM_LIT_DEPENDS})<br>
+endif()<br>
+<br>
+if (LLVM_INCLUDE_DOCS)<br>
+Â add_subdirectory(docs)<br>
+endif()<br>
+<br>
+add_subdirectory(cmake/modules)<br>
+<br>
+if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)<br>
+Â install(DIRECTORY include/llvm include/llvm-c<br>
+Â Â DESTINATION include<br>
+Â Â COMPONENT llvm-headers<br>
+Â Â FILES_MATCHING<br>
+Â Â PATTERN "*.def"<br>
+Â Â PATTERN "*.h"<br>
+Â Â PATTERN "*.td"<br>
+Â Â PATTERN "*.inc"<br>
+Â Â PATTERN "LICENSE.TXT"<br>
+Â Â PATTERN ".svn" EXCLUDE<br>
+Â Â )<br>
+<br>
+Â install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm<br>
+Â Â DESTINATION include<br>
+Â Â COMPONENT llvm-headers<br>
+Â Â FILES_MATCHING<br>
+Â Â PATTERN "*.def"<br>
+Â Â PATTERN "*.h"<br>
+Â Â PATTERN "*.gen"<br>
+Â Â PATTERN "*.inc"<br>
+Â Â # Exclude include/llvm/CMakeFiles/intrinsics_gen.dir, matched by "*.def"<br>
+Â Â PATTERN "CMakeFiles" EXCLUDE<br>
+Â Â PATTERN "config.h" EXCLUDE<br>
+Â Â PATTERN ".svn" EXCLUDE<br>
+Â Â )<br>
+<br>
+Â if (NOT CMAKE_CONFIGURATION_TYPES)<br>
+Â Â add_custom_target(installhdrs<br>
+Â Â Â Â Â Â Â Â Â Â Â DEPENDS ${name}<br>
+Â Â Â Â Â Â Â Â Â Â Â COMMAND "${CMAKE_COMMAND}"<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â -DCMAKE_INSTALL_COMPONENT=llvm-headers<br>
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")<br>
+Â endif()<br>
+endif()<br>
+<br>
+# This must be at the end of the LLVM root CMakeLists file because it must run<br>
+# after all targets are created.<br>
+if(LLVM_DISTRIBUTION_COMPONENTS)<br>
+Â if(CMAKE_CONFIGURATION_TYPES)<br>
+Â Â message(FATAL_ERROR "LLVM_DISTRIBUTION_COMPONENTS cannot be specified with multi-configuration generators (i.e. Xcode or Visual Studio)")<br>
+Â endif()<br>
+<br>
+Â add_custom_target(distribution)<br>
+Â add_custom_target(install-distribution)<br>
+Â foreach(target ${LLVM_DISTRIBUTION_COMPONENTS})<br>
+Â Â if(TARGET ${target})<br>
+Â Â Â add_dependencies(distribution ${target})<br>
+Â Â else()<br>
+Â Â Â message(FATAL_ERROR "Specified distribution component '${target}' doesn't have a target")<br>
+Â Â endif()<br>
+<br>
+Â Â if(TARGET install-${target})<br>
+Â Â Â add_dependencies(install-distribution install-${target})<br>
+Â Â else()<br>
+Â Â Â message(FATAL_ERROR "Specified distribution component '${target}' doesn't have an install target")<br>
+Â Â endif()<br>
+Â endforeach()<br>
+endif()<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>