X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=CMakeLists.txt;h=b4eac034ae79d69b3561ab685569aaab15023184;hp=8ddf7beeb15d970ca3d3bb441942c0e815076e59;hb=866ee52df37b5b2229bdae201f8d5ecad41d4326;hpb=7b837d8c75f78fe55c9b348b9ec2281169a48d2a diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ddf7beeb15..b4eac034ae7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ set(CMAKE_MODULE_PATH ) set(LLVM_VERSION_MAJOR 3) -set(LLVM_VERSION_MINOR 5) +set(LLVM_VERSION_MINOR 6) set(LLVM_VERSION_PATCH 0) if (NOT PACKAGE_VERSION) @@ -114,6 +114,12 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) # They are used as destination of target generators. set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib) +if(WIN32 OR CYGWIN) + # DLL platform -- put DLLs into bin. + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) +else() + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) +endif() # Each of them corresponds to llvm-config's. set(LLVM_TOOLS_BINARY_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) # --bindir @@ -128,7 +134,6 @@ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name set(LLVM_ALL_TARGETS AArch64 - ARM64 ARM CppBackend Hexagon @@ -144,7 +149,7 @@ set(LLVM_ALL_TARGETS ) # List of targets with JIT support: -set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM64 ARM Mips SystemZ) +set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Mips SystemZ) set(LLVM_TARGETS_TO_BUILD "all" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") @@ -199,10 +204,11 @@ option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON) # MSVC has a gazillion warnings with this. if( MSVC ) option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." OFF) -else( MSVC ) +else() option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) endif() +option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF) option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF) option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF) option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) @@ -235,7 +241,7 @@ option(LLVM_USE_OPROFILE # If enabled, verify we are on a platform that supports oprofile. if( LLVM_USE_OPROFILE ) if( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" ) - message(FATAL_ERROR "OProfile support is available on Linux only.") + message(FATAL_ERROR "OProfile support is available on Linux only.") endif( NOT CMAKE_SYSTEM_NAME MATCHES "Linux" ) endif( LLVM_USE_OPROFILE ) @@ -245,6 +251,9 @@ set(LLVM_USE_SANITIZER "" CACHE STRING option(LLVM_USE_SPLIT_DWARF "Use -gsplit-dwarf when compiling llvm." OFF) +option(WITH_POLLY "Build LLVM with Polly" ON) +option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF) + # Define an option controlling whether we should build for 32-bit on 64-bit # platforms, where supported. if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 ) @@ -273,6 +282,8 @@ option(LLVM_INCLUDE_TOOLS "Generate build targets for the LLVM tools." ON) option(LLVM_BUILD_TOOLS "Build the LLVM tools. If OFF, just generate build targets." ON) +option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." ON) + option(LLVM_BUILD_RUNTIME "Build the LLVM runtime libraries." ON) option(LLVM_BUILD_EXAMPLES @@ -285,11 +296,14 @@ option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON) option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF) option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON) -option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm documentation." OFF) +option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm API documentation." OFF) +option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF) option (LLVM_BUILD_EXTERNAL_COMPILER_RT "Build compiler-rt as an external project." OFF) +option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" OFF) + # All options referred to from HandleLLVMOptions have to be specified # BEFORE this include, otherwise options will not be correctly set on # first cmake run @@ -450,6 +464,7 @@ else(UNIX) set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib") if (${CMAKE_SYSTEM_NAME} MATCHES FreeBSD) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin") endif() endif(NOT DEFINED CMAKE_INSTALL_RPATH) endif() @@ -458,6 +473,11 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories( ${LLVM_INCLUDE_DIR} ${LLVM_MAIN_INCLUDE_DIR}) +# when crosscompiling import the executable targets from a file +if(CMAKE_CROSSCOMPILING) + include(CrossCompile) +endif(CMAKE_CROSSCOMPILING) + if( ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD ) # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM # with libxml2, iconv.h, etc., we must add /usr/local paths. @@ -492,12 +512,19 @@ add_subdirectory(include/llvm) add_subdirectory(lib) -add_subdirectory(utils/FileCheck) -add_subdirectory(utils/FileUpdate) -add_subdirectory(utils/count) -add_subdirectory(utils/not) -add_subdirectory(utils/llvm-lit) -add_subdirectory(utils/yaml-bench) +if( LLVM_INCLUDE_UTILS ) + add_subdirectory(utils/FileCheck) + add_subdirectory(utils/PerfectShuffle) + add_subdirectory(utils/count) + add_subdirectory(utils/not) + add_subdirectory(utils/llvm-lit) + add_subdirectory(utils/yaml-bench) +else() + if ( LLVM_INCLUDE_TESTS ) + message(FATAL_ERROR "Including tests when not building utils will not work. + Either set LLVM_INCLUDE_UTILS to On, or set LLVM_INCLDE_TESTS to Off.") + endif() +endif() if(LLVM_INCLUDE_TESTS) add_subdirectory(utils/unittest) @@ -505,9 +532,6 @@ endif() add_subdirectory(projects) -option(WITH_POLLY "Build LLVM with Polly" ON) -option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF) - if(WITH_POLLY) if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt) set(WITH_POLLY OFF) @@ -573,6 +597,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) PATTERN "*.inc" # Exclude include/llvm/CMakeFiles/intrinsics_gen.dir, matched by "*.def" PATTERN "CMakeFiles" EXCLUDE + PATTERN "config.h" EXCLUDE PATTERN ".svn" EXCLUDE ) endif()