1if (NOT DEFINED LLVM_PATH) 2 set(LLVM_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../llvm CACHE PATH "" FORCE) 3endif() 4 5if(NOT IS_DIRECTORY ${LLVM_PATH}) 6 message(FATAL_ERROR 7 "The provided LLVM_PATH (${LLVM_PATH}) is not a valid directory. Note that " 8 "building libc++ outside of the monorepo is not supported anymore. Please " 9 "use a Standalone build against the monorepo, a Runtimes build or a classic " 10 "monorepo build.") 11endif() 12 13set(LLVM_INCLUDE_DIR ${LLVM_PATH}/include CACHE PATH "Path to llvm/include") 14set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree") 15set(LLVM_MAIN_SRC_DIR ${LLVM_PATH}) 16set(LLVM_CMAKE_PATH "${LLVM_PATH}/cmake/modules") 17 18if (EXISTS "${LLVM_CMAKE_PATH}") 19 list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") 20elseif (EXISTS "${LLVM_MAIN_SRC_DIR}/cmake/modules") 21 list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules") 22else() 23 message(FATAL_ERROR "Neither ${LLVM_CMAKE_PATH} nor ${LLVM_MAIN_SRC_DIR}/cmake/modules found. " 24 "This is not a supported configuration.") 25endif() 26 27message(STATUS "Configuring for standalone build.") 28 29# By default, we target the host, but this can be overridden at CMake invocation time. 30include(GetHostTriple) 31get_host_triple(LLVM_INFERRED_HOST_TRIPLE) 32set(LLVM_HOST_TRIPLE "${LLVM_INFERRED_HOST_TRIPLE}" CACHE STRING "Host on which LLVM binaries will run") 33set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING "Target triple used by default.") 34 35# Add LLVM Functions -------------------------------------------------------- 36if (WIN32) 37 set(LLVM_ON_UNIX 0) 38 set(LLVM_ON_WIN32 1) 39else() 40 set(LLVM_ON_UNIX 1) 41 set(LLVM_ON_WIN32 0) 42endif() 43 44include(AddLLVM OPTIONAL) 45 46# LLVM Options -------------------------------------------------------------- 47if (NOT DEFINED LLVM_INCLUDE_TESTS) 48 set(LLVM_INCLUDE_TESTS ON) 49endif() 50if (NOT DEFINED LLVM_INCLUDE_DOCS) 51 set(LLVM_INCLUDE_DOCS ON) 52endif() 53if (NOT DEFINED LLVM_ENABLE_SPHINX) 54 set(LLVM_ENABLE_SPHINX OFF) 55endif() 56 57if (LLVM_INCLUDE_TESTS) 58 # Required LIT Configuration ------------------------------------------------ 59 # Define the default arguments to use with 'lit', and an option for the user 60 # to override. 61 set(LLVM_DEFAULT_EXTERNAL_LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py") 62 set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported") 63 if (MSVC OR XCODE) 64 set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") 65 endif() 66 set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") 67endif() 68 69# Required doc configuration 70if (LLVM_ENABLE_SPHINX) 71 find_package(Sphinx REQUIRED) 72endif() 73 74if (LLVM_ON_UNIX AND NOT APPLE) 75 set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) 76else() 77 set(LLVM_HAVE_LINK_VERSION_SCRIPT 0) 78endif() 79