diff options
| -rw-r--r-- | compiler-rt/CMakeLists.txt | 30 | ||||
| -rw-r--r-- | llvm/CMakeLists.txt | 19 | ||||
| -rw-r--r-- | llvm/cmake/modules/AddLLVM.cmake | 35 |
3 files changed, 23 insertions, 61 deletions
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index 2a5ac10d4e1..51842809272 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -225,7 +225,7 @@ append_list_if(COMPILER_RT_DEBUG -DSANITIZER_DEBUG=1 SANITIZER_COMMON_CFLAGS) # always respect the optimization flags set by CMAKE_BUILD_TYPE instead. if (NOT MSVC) - # Build with optimization, unless we're in debug mode. + # Build with optimization, unless we're in debug mode. if(COMPILER_RT_DEBUG) list(APPEND SANITIZER_COMMON_CFLAGS -O0) else() @@ -315,16 +315,28 @@ endif() add_subdirectory(include) -set(COMPILER_RT_HAS_LIBCXX_SOURCES ${LLVM_PROJECT_LIBCXX_ENABLED}) -if (LLVM_PROJECT_LIBCXX_ENABLED) - set(COMPILER_RT_LIBCXX_PATH ${LLVM_PROJECT_LIBCXX_SOURCE_DIR}) - message("compiler-rt libcxx enabled at ${COMPILER_RT_LIBCXX_PATH}") +set(COMPILER_RT_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/projects/libcxx) +if(EXISTS ${COMPILER_RT_LIBCXX_PATH}/) + set(COMPILER_RT_HAS_LIBCXX_SOURCES TRUE) +else() + set(COMPILER_RT_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/../libcxx) + if(EXISTS ${COMPILER_RT_LIBCXX_PATH}/) + set(COMPILER_RT_HAS_LIBCXX_SOURCES TRUE) + else() + set(COMPILER_RT_HAS_LIBCXX_SOURCES FALSE) + endif() endif() -set(COMPILER_RT_HAS_LLD ${LLVM_PROJECT_LLD_ENABLED}) -if (LLVM_PROJECT_LLD_ENABLED) - set(COMPILER_RT_LLD_PATH ${LLVM_PROJECT_LLD_SOURCE_DIR}) - message("compiler-rt lld enabled at ${COMPILER_RT_LLD_PATH}") +set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld) +if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD) + set(COMPILER_RT_HAS_LLD TRUE) +else() + set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/../lld) + if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD) + set(COMPILER_RT_HAS_LLD TRUE) + else() + set(COMPILER_RT_HAS_LLD FALSE) + endif() endif() pythonize_bool(COMPILER_RT_HAS_LLD) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index cdeaf4ac706..d08fd67ddaf 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -823,25 +823,6 @@ endif() include(AddLLVM) include(TableGen) - -# Find all subprojects which are either enabled in a side-by-side layout, or -# cloned into a non-side-by-side layout. Do this before adding any -# subdirectories so that any project can check for the existence of any other -# project. Each call takes priority over the next call, so any project which -# is enabled via LLVM_ENABLE_PROJECTS will not have its location or enabled -# status overwritten via a subsequent call. - -# First look for all projects explicitly enabled at the root. -find_llvm_enabled_projects("${LLVM_SOURCE_DIR}/.." "${LLVM_ENABLE_PROJECTS}") - -# Then pick up any projects explicitly cloned into llvm/projects or llvm/runtimes -find_llvm_enabled_projects("${LLVM_SOURCE_DIR}/runtimes") -find_llvm_enabled_projects("${LLVM_SOURCE_DIR}/projects") - -# Then pick up a few specific projects which can be explicit cloned into llvm/tools -find_llvm_enabled_projects("${LLVM_SOURCE_DIR}/tools" "clang;lldb;lld") - - if( MINGW ) # People report that -O3 is unreliable on MinGW. The traditional # build also uses -O2 for that reason: diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index a23bb263038..66abb2486d9 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -687,7 +687,7 @@ macro(add_llvm_executable name) # it forces Xcode to properly link the static library. list(APPEND ALL_FILES "${LLVM_MAIN_SRC_DIR}/cmake/dummy.cpp") endif() - + if( EXCLUDE_FROM_ALL ) add_executable(${name} EXCLUDE_FROM_ALL ${ALL_FILES}) else() @@ -920,37 +920,6 @@ function(canonicalize_tool_name name output) set(${output} "${nameUPPER}" PARENT_SCOPE) endfunction(canonicalize_tool_name) -macro(find_llvm_enabled_projects base_dir) - set(specific_project_list "${ARGN}") - if("${specific_project_list}" STREQUAL "") - file(GLOB entries "${base_dir}/*") - set(list_of_project_dirs "") - foreach(entry ${entries}) - if(IS_DIRECTORY ${entry} AND EXISTS ${entry}/CMakeLists.txt) - get_filename_component(filename "${entry}" NAME) - list(APPEND specific_project_list "${filename}") - endif() - endforeach(entry) - endif() - - foreach(proj ${specific_project_list}) - canonicalize_tool_name(${proj} projUPPER) - - if (${LLVM_PROJECT_${projUPPER}_ENABLED}) - if (EXISTS "${base_dir}/${proj}") - message(WARNING "Project ${projUPPER} in ${base_dir}/${proj} previously found in ${LLVM_PROJECT_${projUPPER}_SOURCE_DIR}") - endif() - continue() - elseif(EXISTS "${LLVM_EXTERNAL_${projUPPER}_SOURCE_DIR}") - set(LLVM_PROJECT_${projUPPER}_ENABLED ON) - set(LLVM_PROJECT_${projUPPER}_SOURCE_DIR "${LLVM_EXTERNAL_${projUPPER}_SOURCE_DIR}") - elseif(EXISTS "${base_dir}/${proj}") - set(LLVM_PROJECT_${projUPPER}_ENABLED ON) - set(LLVM_PROJECT_${projUPPER}_SOURCE_DIR "${base_dir}/${proj}") - endif() - endforeach() -endmacro() - # Custom add_subdirectory wrapper # Takes in a project name (i.e. LLVM), the subdirectory name, and an optional # path if it differs from the name. @@ -1381,7 +1350,7 @@ function(add_llvm_tool_symlink link_name target) # magic. First we grab one of the types, and a type-specific path. Then from # the type-specific path we find the last occurrence of the type in the path, # and replace it with CMAKE_CFG_INTDIR. This allows the build step to be type - # agnostic again. + # agnostic again. if(NOT ARG_OUTPUT_DIR) # If you're not overriding the OUTPUT_DIR, we can make the link relative in # the same directory. |

