diff options
author | 2021-01-11 15:31:56 +0000 | |
---|---|---|
committer | 2021-01-11 15:31:56 +0000 | |
commit | 16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef (patch) | |
tree | 1a7dd8152b94f6f8cd318bfaf85aa40882854583 /lib/libcxx/cmake/Modules | |
parent | sync (diff) | |
download | wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.tar.xz wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.zip |
Remove libc++ and libc++abi 8.0.0 now that we switched to version 10.0.1
in the gnu/ directory.
Diffstat (limited to 'lib/libcxx/cmake/Modules')
-rw-r--r-- | lib/libcxx/cmake/Modules/CheckLibcxxAtomic.cmake | 54 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/CodeCoverage.cmake | 50 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/HandleCompilerRT.cmake | 64 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/HandleLibCXXABI.cmake | 132 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/HandleLibcxxFlags.cmake | 230 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake | 139 | ||||
-rw-r--r-- | lib/libcxx/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake | 18 |
7 files changed, 0 insertions, 687 deletions
diff --git a/lib/libcxx/cmake/Modules/CheckLibcxxAtomic.cmake b/lib/libcxx/cmake/Modules/CheckLibcxxAtomic.cmake deleted file mode 100644 index 98862d42397..00000000000 --- a/lib/libcxx/cmake/Modules/CheckLibcxxAtomic.cmake +++ /dev/null @@ -1,54 +0,0 @@ -INCLUDE(CheckCXXSourceCompiles) - -# Sometimes linking against libatomic is required for atomic ops, if -# the platform doesn't support lock-free atomics. -# -# We could modify LLVM's CheckAtomic module and have it check for 64-bit -# atomics instead. However, we would like to avoid careless uses of 64-bit -# atomics inside LLVM over time on 32-bit platforms. - -function(check_cxx_atomics varname) - set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nodefaultlibs -std=c++11 -nostdinc++ -isystem ${LIBCXX_SOURCE_DIR}/include") - if (${LIBCXX_GCC_TOOLCHAIN}) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} --gcc-toolchain=${LIBCXX_GCC_TOOLCHAIN}") - endif() - if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all") - endif() - if (CMAKE_C_FLAGS MATCHES -fsanitize-coverage OR CMAKE_CXX_FLAGS MATCHES -fsanitize-coverage) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters") - endif() - check_cxx_source_compiles(" -#include <cstdint> -#include <atomic> -std::atomic<uintptr_t> x; -std::atomic<uintmax_t> y; -int main() { - return x + y; -} -" ${varname}) - set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) -endfunction(check_cxx_atomics) - -# Perform the check for 64bit atomics without libatomic. It may have been -# added to the required libraries during in the configuration of LLVM, which -# would cause the check for CXX atomics without libatomic to incorrectly pass. -set(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) -list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "atomic") -check_cxx_atomics(LIBCXX_HAVE_CXX_ATOMICS_WITHOUT_LIB) -set(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES}) - -check_library_exists(atomic __atomic_fetch_add_8 "" LIBCXX_HAS_ATOMIC_LIB) -# If not, check if the library exists, and atomics work with it. -if(NOT LIBCXX_HAVE_CXX_ATOMICS_WITHOUT_LIB) - if(LIBCXX_HAS_ATOMIC_LIB) - list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") - check_cxx_atomics(LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB) - if (NOT LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB) - message(WARNING "Host compiler must support std::atomic!") - endif() - else() - message(WARNING "Host compiler appears to require libatomic, but cannot find it.") - endif() -endif() diff --git a/lib/libcxx/cmake/Modules/CodeCoverage.cmake b/lib/libcxx/cmake/Modules/CodeCoverage.cmake deleted file mode 100644 index 1bd3a786812..00000000000 --- a/lib/libcxx/cmake/Modules/CodeCoverage.cmake +++ /dev/null @@ -1,50 +0,0 @@ -find_program(CODE_COVERAGE_LCOV lcov) -if (NOT CODE_COVERAGE_LCOV) - message(FATAL_ERROR "Cannot find lcov...") -endif() - -find_program(CODE_COVERAGE_LLVM_COV llvm-cov) -if (NOT CODE_COVERAGE_LLVM_COV) - message(FATAL_ERROR "Cannot find llvm-cov...") -endif() - -find_program(CODE_COVERAGE_GENHTML genhtml) -if (NOT CODE_COVERAGE_GENHTML) - message(FATAL_ERROR "Cannot find genhtml...") -endif() - -set(CMAKE_CXX_FLAGS_COVERAGE "-g -O0 --coverage") - -function(setup_lcov_test_target_coverage target_name output_dir capture_dirs source_dirs) - if (NOT DEFINED LIBCXX_BINARY_DIR) - message(FATAL_ERROR "Variable must be set") - endif() - - set(GCOV_TOOL "${LIBCXX_BINARY_DIR}/llvm-cov-wrapper") - file(GENERATE OUTPUT ${GCOV_TOOL} - CONTENT "#!/usr/bin/env bash\n${CODE_COVERAGE_LLVM_COV} gcov \"$@\"\n") - - file(MAKE_DIRECTORY ${output_dir}) - - set(CAPTURE_DIRS "") - foreach(cdir ${capture_dirs}) - list(APPEND CAPTURE_DIRS "-d;${cdir}") - endforeach() - - set(EXTRACT_DIRS "") - foreach(sdir ${source_dirs}) - list(APPEND EXTRACT_DIRS "'${sdir}/*'") - endforeach() - - message(STATUS "Capture Directories: ${CAPTURE_DIRS}") - message(STATUS "Extract Directories: ${EXTRACT_DIRS}") - - add_custom_target(generate-lib${target_name}-coverage - COMMAND chmod +x ${GCOV_TOOL} - COMMAND ${CODE_COVERAGE_LCOV} --gcov-tool ${GCOV_TOOL} --capture ${CAPTURE_DIRS} -o test_coverage.info - COMMAND ${CODE_COVERAGE_LCOV} --gcov-tool ${GCOV_TOOL} --extract test_coverage.info ${EXTRACT_DIRS} -o test_coverage.info - COMMAND ${CODE_COVERAGE_GENHTML} --demangle-cpp test_coverage.info -o test_coverage - COMMAND ${CMAKE_COMMAND} -E remove test_coverage.info - WORKING_DIRECTORY ${output_dir} - COMMENT "Generating coverage results") -endfunction() diff --git a/lib/libcxx/cmake/Modules/HandleCompilerRT.cmake b/lib/libcxx/cmake/Modules/HandleCompilerRT.cmake deleted file mode 100644 index 1ce25657494..00000000000 --- a/lib/libcxx/cmake/Modules/HandleCompilerRT.cmake +++ /dev/null @@ -1,64 +0,0 @@ -function(find_compiler_rt_library name dest) - if (NOT DEFINED LIBCXX_COMPILE_FLAGS) - message(FATAL_ERROR "LIBCXX_COMPILE_FLAGS must be defined when using this function") - endif() - set(dest "" PARENT_SCOPE) - set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} - "--rtlib=compiler-rt" "--print-libgcc-file-name") - if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_CXX_COMPILER_TARGET) - list(APPEND CLANG_COMMAND "--target=${CMAKE_CXX_COMPILER_TARGET}") - endif() - get_property(LIBCXX_CXX_FLAGS CACHE CMAKE_CXX_FLAGS PROPERTY VALUE) - string(REPLACE " " ";" LIBCXX_CXX_FLAGS "${LIBCXX_CXX_FLAGS}") - list(APPEND CLANG_COMMAND ${LIBCXX_CXX_FLAGS}) - execute_process( - COMMAND ${CLANG_COMMAND} - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE LIBRARY_FILE - ) - string(STRIP "${LIBRARY_FILE}" LIBRARY_FILE) - file(TO_CMAKE_PATH "${LIBRARY_FILE}" LIBRARY_FILE) - string(REPLACE "builtins" "${name}" LIBRARY_FILE "${LIBRARY_FILE}") - if (NOT HAD_ERROR AND EXISTS "${LIBRARY_FILE}") - message(STATUS "Found compiler-rt library: ${LIBRARY_FILE}") - set(${dest} "${LIBRARY_FILE}" PARENT_SCOPE) - else() - message(STATUS "Failed to find compiler-rt library") - endif() -endfunction() - -function(find_compiler_rt_dir dest) - if (NOT DEFINED LIBCXX_COMPILE_FLAGS) - message(FATAL_ERROR "LIBCXX_COMPILE_FLAGS must be defined when using this function") - endif() - set(dest "" PARENT_SCOPE) - if (APPLE) - set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} - "-print-file-name=lib") - execute_process( - COMMAND ${CLANG_COMMAND} - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE LIBRARY_DIR - ) - string(STRIP "${LIBRARY_DIR}" LIBRARY_DIR) - file(TO_CMAKE_PATH "${LIBRARY_DIR}" LIBRARY_DIR) - set(LIBRARY_DIR "${LIBRARY_DIR}/darwin") - else() - set(CLANG_COMMAND ${CMAKE_CXX_COMPILER} ${LIBCXX_COMPILE_FLAGS} - "--rtlib=compiler-rt" "--print-libgcc-file-name") - execute_process( - COMMAND ${CLANG_COMMAND} - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE LIBRARY_FILE - ) - string(STRIP "${LIBRARY_FILE}" LIBRARY_FILE) - file(TO_CMAKE_PATH "${LIBRARY_FILE}" LIBRARY_FILE) - get_filename_component(LIBRARY_DIR "${LIBRARY_FILE}" DIRECTORY) - endif() - if (NOT HAD_ERROR AND EXISTS "${LIBRARY_DIR}") - message(STATUS "Found compiler-rt directory: ${LIBRARY_DIR}") - set(${dest} "${LIBRARY_DIR}" PARENT_SCOPE) - else() - message(STATUS "Failed to find compiler-rt directory") - endif() -endfunction() diff --git a/lib/libcxx/cmake/Modules/HandleLibCXXABI.cmake b/lib/libcxx/cmake/Modules/HandleLibCXXABI.cmake deleted file mode 100644 index 1c19d7e01af..00000000000 --- a/lib/libcxx/cmake/Modules/HandleLibCXXABI.cmake +++ /dev/null @@ -1,132 +0,0 @@ - -#=============================================================================== -# Add an ABI library if appropriate -#=============================================================================== - -# -# _setup_abi: Set up the build to use an ABI library -# -# Parameters: -# abidefines: A list of defines needed to compile libc++ with the ABI library -# abilib : The ABI library to link against. -# abifiles : A list of files (which may be relative paths) to copy into the -# libc++ build tree for the build. These files will be copied -# twice: once into include/, so the libc++ build itself can find -# them, and once into include/c++/v1, so that a clang built into -# the same build area will find them. These files will also be -# installed alongside the libc++ headers. -# abidirs : A list of relative paths to create under an include directory -# in the libc++ build directory. -# - -macro(setup_abi_lib abidefines abilib abifiles abidirs) - list(APPEND LIBCXX_COMPILE_FLAGS ${abidefines}) - set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_CXX_ABI_INCLUDE_PATHS}" - CACHE PATH - "Paths to C++ ABI header directories separated by ';'." FORCE - ) - set(LIBCXX_CXX_ABI_LIBRARY_PATH "${LIBCXX_CXX_ABI_LIBRARY_PATH}" - CACHE PATH - "Paths to C++ ABI library directory" - ) - set(LIBCXX_CXX_ABI_LIBRARY ${abilib}) - set(LIBCXX_ABILIB_FILES ${abifiles}) - - foreach(fpath ${LIBCXX_ABILIB_FILES}) - set(found FALSE) - foreach(incpath ${LIBCXX_CXX_ABI_INCLUDE_PATHS}) - if (EXISTS "${incpath}/${fpath}") - set(found TRUE) - get_filename_component(dstdir ${fpath} PATH) - get_filename_component(ifile ${fpath} NAME) - set(src ${incpath}/${fpath}) - - set(dst ${LIBCXX_BINARY_INCLUDE_DIR}/${dstdir}/${ifile}) - add_custom_command(OUTPUT ${dst} - DEPENDS ${src} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} - COMMENT "Copying C++ ABI header ${fpath}...") - list(APPEND abilib_headers "${dst}") - - if (NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR) - set(dst "${LIBCXX_HEADER_DIR}/include/c++/v1/${dstdir}/${fpath}") - add_custom_command(OUTPUT ${dst} - DEPENDS ${src} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} - COMMENT "Copying C++ ABI header ${fpath}...") - list(APPEND abilib_headers "${dst}") - endif() - - if (LIBCXX_INSTALL_HEADERS) - install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}" - DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir} - COMPONENT cxx-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - ) - endif() - endif() - endforeach() - if (NOT found) - message(WARNING "Failed to find ${fpath}") - endif() - endforeach() - - include_directories("${LIBCXX_BINARY_INCLUDE_DIR}") - add_custom_target(cxx_abi_headers ALL DEPENDS ${abilib_headers}) - set(LIBCXX_CXX_ABI_HEADER_TARGET "cxx_abi_headers") -endmacro() - - -# Configure based on the selected ABI library. -if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++" OR - "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libsupc++") - set(_LIBSUPCXX_INCLUDE_FILES - cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h - bits/cxxabi_tweaks.h bits/cxxabi_forced.h - ) - if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++") - set(_LIBSUPCXX_DEFINES "-DLIBSTDCXX") - set(_LIBSUPCXX_LIBNAME stdc++) - else() - set(_LIBSUPCXX_DEFINES "") - set(_LIBSUPCXX_LIBNAME supc++) - endif() - setup_abi_lib( - "-D__GLIBCXX__ ${_LIBSUPCXX_DEFINES}" - "${_LIBSUPCXX_LIBNAME}" "${_LIBSUPCXX_INCLUDE_FILES}" "bits" - ) -elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi") - if (LIBCXX_CXX_ABI_INTREE) - # Link against just-built "cxxabi" target. - if (LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY) - set(CXXABI_LIBNAME cxxabi_static) - else() - set(CXXABI_LIBNAME cxxabi_shared) - endif() - set(LIBCXX_LIBCPPABI_VERSION "2" PARENT_SCOPE) - else() - # Assume c++abi is installed in the system, rely on -lc++abi link flag. - set(CXXABI_LIBNAME "c++abi") - endif() - set(HEADERS "cxxabi.h;__cxxabi_config.h") - if (LIBCXX_CXX_ABI_SYSTEM) - set(HEADERS "") - endif() - setup_abi_lib("-DLIBCXX_BUILDING_LIBCXXABI" ${CXXABI_LIBNAME} "${HEADERS}" "") -elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxrt") - setup_abi_lib("-DLIBCXXRT" - "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" "" - ) -elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "vcruntime") - # Nothing TODO -elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "none") - list(APPEND LIBCXX_COMPILE_FLAGS "-D_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY") -elseif ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "default") - # Nothing TODO -else() - message(FATAL_ERROR - "Unsupported c++ abi: '${LIBCXX_CXX_ABI_LIBNAME}'. \ - Currently libstdc++, libsupc++, libcxxabi, libcxxrt, default and none are - supported for c++ abi." - ) -endif () diff --git a/lib/libcxx/cmake/Modules/HandleLibcxxFlags.cmake b/lib/libcxx/cmake/Modules/HandleLibcxxFlags.cmake deleted file mode 100644 index fb60318a330..00000000000 --- a/lib/libcxx/cmake/Modules/HandleLibcxxFlags.cmake +++ /dev/null @@ -1,230 +0,0 @@ -# HandleLibcxxFlags - A set of macros used to setup the flags used to compile -# and link libc++. These macros add flags to the following CMake variables. -# - LIBCXX_COMPILE_FLAGS: flags used to compile libc++ -# - LIBCXX_LINK_FLAGS: flags used to link libc++ -# - LIBCXX_LIBRARIES: libraries to link libc++ to. - -include(CheckCXXCompilerFlag) - -unset(add_flag_if_supported) - -# Mangle the name of a compiler flag into a valid CMake identifier. -# Ex: --std=c++11 -> STD_EQ_CXX11 -macro(mangle_name str output) - string(STRIP "${str}" strippedStr) - string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}") - string(REGEX REPLACE "^-+" "" strippedStr "${strippedStr}") - string(REGEX REPLACE "-+$" "" strippedStr "${strippedStr}") - string(REPLACE "-" "_" strippedStr "${strippedStr}") - string(REPLACE ":" "_COLON_" strippedStr "${strippedStr}") - string(REPLACE "=" "_EQ_" strippedStr "${strippedStr}") - string(REPLACE "+" "X" strippedStr "${strippedStr}") - string(TOUPPER "${strippedStr}" ${output}) -endmacro() - -# Remove a list of flags from all CMake variables that affect compile flags. -# This can be used to remove unwanted flags specified on the command line -# or added in other parts of LLVM's cmake configuration. -macro(remove_flags) - foreach(var ${ARGN}) - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - string(REPLACE "${var}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string(REPLACE "${var}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - string(REPLACE "${var}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - string(REPLACE "${var}" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") - string(REPLACE "${var}" "" CMAKE_SHARED_MODULE_FLAGS "${CMAKE_SHARED_MODULE_FLAGS}") - remove_definitions(${var}) - endforeach() -endmacro(remove_flags) - -macro(check_flag_supported flag) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") -endmacro() - -macro(append_flags DEST) - foreach(value ${ARGN}) - list(APPEND ${DEST} ${value}) - list(APPEND ${DEST} ${value}) - endforeach() -endmacro() - -# If the specified 'condition' is true then append the specified list of flags to DEST -macro(append_flags_if condition DEST) - if (${condition}) - list(APPEND ${DEST} ${ARGN}) - endif() -endmacro() - -# Add each flag in the list specified by DEST if that flag is supported by the current compiler. -macro(append_flags_if_supported DEST) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") - append_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${DEST} ${flag}) - endforeach() -endmacro() - -# Add a macro definition if condition is true. -macro(define_if condition def) - if (${condition}) - add_definitions(${def}) - endif() -endmacro() - -# Add a macro definition if condition is not true. -macro(define_if_not condition def) - if (NOT ${condition}) - add_definitions(${def}) - endif() -endmacro() - -# Add a macro definition to the __config_site file if the specified condition -# is 'true'. Note that '-D${def}' is not added. Instead it is expected that -# the build include the '__config_site' header. -macro(config_define_if condition def) - if (${condition}) - set(${def} ON) - set(LIBCXX_NEEDS_SITE_CONFIG ON) - endif() -endmacro() - -macro(config_define_if_not condition def) - if (NOT ${condition}) - set(${def} ON) - set(LIBCXX_NEEDS_SITE_CONFIG ON) - endif() -endmacro() - -macro(config_define value def) - set(${def} ${value}) - set(LIBCXX_NEEDS_SITE_CONFIG ON) -endmacro() - -# Add a list of flags to all of 'CMAKE_CXX_FLAGS', 'CMAKE_C_FLAGS', -# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'. -macro(add_target_flags) - foreach(value ${ARGN}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${value}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${value}") - list(APPEND LIBCXX_COMPILE_FLAGS ${value}) - list(APPEND LIBCXX_LINK_FLAGS ${value}) - endforeach() -endmacro() - -# If the specified 'condition' is true then add a list of flags to -# all of 'CMAKE_CXX_FLAGS', 'CMAKE_C_FLAGS', 'LIBCXX_COMPILE_FLAGS' -# and 'LIBCXX_LINK_FLAGS'. -macro(add_target_flags_if condition) - if (${condition}) - add_target_flags(${ARGN}) - endif() -endmacro() - -# Add a specified list of flags to both 'LIBCXX_COMPILE_FLAGS' and -# 'LIBCXX_LINK_FLAGS'. -macro(add_flags) - foreach(value ${ARGN}) - list(APPEND LIBCXX_COMPILE_FLAGS ${value}) - list(APPEND LIBCXX_LINK_FLAGS ${value}) - endforeach() -endmacro() - -# If the specified 'condition' is true then add a list of flags to both -# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'. -macro(add_flags_if condition) - if (${condition}) - add_flags(${ARGN}) - endif() -endmacro() - -# Add each flag in the list to LIBCXX_COMPILE_FLAGS and LIBCXX_LINK_FLAGS -# if that flag is supported by the current compiler. -macro(add_flags_if_supported) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") - add_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) - endforeach() -endmacro() - -# Add a list of flags to 'LIBCXX_COMPILE_FLAGS'. -macro(add_compile_flags) - foreach(f ${ARGN}) - list(APPEND LIBCXX_COMPILE_FLAGS ${f}) - endforeach() -endmacro() - -# If 'condition' is true then add the specified list of flags to -# 'LIBCXX_COMPILE_FLAGS' -macro(add_compile_flags_if condition) - if (${condition}) - add_compile_flags(${ARGN}) - endif() -endmacro() - -# For each specified flag, add that flag to 'LIBCXX_COMPILE_FLAGS' if the -# flag is supported by the C++ compiler. -macro(add_compile_flags_if_supported) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") - add_compile_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) - endforeach() -endmacro() - -# Add a list of flags to 'LIBCXX_LINK_FLAGS'. -macro(add_link_flags) - foreach(f ${ARGN}) - list(APPEND LIBCXX_LINK_FLAGS ${f}) - endforeach() -endmacro() - -# If 'condition' is true then add the specified list of flags to -# 'LIBCXX_LINK_FLAGS' -macro(add_link_flags_if condition) - if (${condition}) - add_link_flags(${ARGN}) - endif() -endmacro() - -# For each specified flag, add that flag to 'LIBCXX_LINK_FLAGS' if the -# flag is supported by the C++ compiler. -macro(add_link_flags_if_supported) - foreach(flag ${ARGN}) - mangle_name("${flag}" flagname) - check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") - add_link_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag}) - endforeach() -endmacro() - -# Add a list of libraries or link flags to 'LIBCXX_LIBRARIES'. -macro(add_library_flags) - foreach(lib ${ARGN}) - list(APPEND LIBCXX_LIBRARIES ${lib}) - endforeach() -endmacro() - -# if 'condition' is true then add the specified list of libraries and flags -# to 'LIBCXX_LIBRARIES'. -macro(add_library_flags_if condition) - if(${condition}) - add_library_flags(${ARGN}) - endif() -endmacro() - -# Add a list of libraries or link flags to 'LIBCXX_LIBRARIES'. -macro(add_interface_library) - foreach(lib ${ARGN}) - list(APPEND LIBCXX_LIBRARIES ${lib}) - list(APPEND LIBCXX_INTERFACE_LIBRARIES ${lib}) - endforeach() -endmacro() - -# Turn a comma separated CMake list into a space separated string. -macro(split_list listname) - string(REPLACE ";" " " ${listname} "${${listname}}") -endmacro() diff --git a/lib/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake b/lib/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake deleted file mode 100644 index 11c13315585..00000000000 --- a/lib/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake +++ /dev/null @@ -1,139 +0,0 @@ -macro(find_llvm_parts) -# Rely on llvm-config. - set(CONFIG_OUTPUT) - if(NOT LLVM_CONFIG_PATH) - find_program(LLVM_CONFIG_PATH "llvm-config") - endif() - if(DEFINED LLVM_PATH) - set(LLVM_INCLUDE_DIR ${LLVM_INCLUDE_DIR} CACHE PATH "Path to llvm/include") - set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree") - set(LLVM_MAIN_SRC_DIR ${LLVM_PATH}) - set(LLVM_CMAKE_PATH "${LLVM_PATH}/cmake/modules") - elseif(LLVM_CONFIG_PATH) - message(STATUS "Found LLVM_CONFIG_PATH as ${LLVM_CONFIG_PATH}") - set(LIBCXX_USING_INSTALLED_LLVM 1) - set(CONFIG_COMMAND ${LLVM_CONFIG_PATH} - "--includedir" - "--prefix" - "--src-root") - execute_process( - COMMAND ${CONFIG_COMMAND} - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE CONFIG_OUTPUT - ) - if(NOT HAD_ERROR) - string(REGEX REPLACE - "[ \t]*[\r\n]+[ \t]*" ";" - CONFIG_OUTPUT ${CONFIG_OUTPUT}) - else() - string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}") - message(STATUS "${CONFIG_COMMAND_STR}") - message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}") - endif() - - list(GET CONFIG_OUTPUT 0 INCLUDE_DIR) - list(GET CONFIG_OUTPUT 1 LLVM_OBJ_ROOT) - list(GET CONFIG_OUTPUT 2 MAIN_SRC_DIR) - - set(LLVM_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include") - set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") - set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") - - # --cmakedir is supported since llvm r291218 (4.0 release) - execute_process( - COMMAND ${LLVM_CONFIG_PATH} --cmakedir - RESULT_VARIABLE HAD_ERROR - OUTPUT_VARIABLE CONFIG_OUTPUT - ERROR_QUIET) - if(NOT HAD_ERROR) - string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH_FROM_LLVM_CONFIG) - file(TO_CMAKE_PATH "${LLVM_CMAKE_PATH_FROM_LLVM_CONFIG}" LLVM_CMAKE_PATH) - else() - file(TO_CMAKE_PATH "${LLVM_BINARY_DIR}" LLVM_BINARY_DIR_CMAKE_STYLE) - set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") - endif() - else() - set(LLVM_FOUND OFF) - message(WARNING "UNSUPPORTED LIBCXX CONFIGURATION DETECTED: " - "llvm-config not found and LLVM_PATH not defined.\n" - "Reconfigure with -DLLVM_CONFIG_PATH=path/to/llvm-config " - "or -DLLVM_PATH=path/to/llvm-source-root.") - return() - endif() - - if (EXISTS "${LLVM_CMAKE_PATH}") - list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") - elseif (EXISTS "${LLVM_MAIN_SRC_DIR}/cmake/modules") - list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules") - else() - set(LLVM_FOUND OFF) - message(WARNING "Neither ${LLVM_CMAKE_PATH} nor ${LLVM_MAIN_SRC_DIR}/cmake/modules found") - return() - endif() - - set(LLVM_FOUND ON) -endmacro(find_llvm_parts) - -macro(configure_out_of_tree_llvm) - message(STATUS "Configuring for standalone build.") - set(LIBCXX_STANDALONE_BUILD 1) - - find_llvm_parts() - - # Add LLVM Functions -------------------------------------------------------- - if (LLVM_FOUND AND LIBCXX_USING_INSTALLED_LLVM) - include(LLVMConfig) # For TARGET_TRIPLE - else() - if (WIN32) - set(LLVM_ON_UNIX 0) - set(LLVM_ON_WIN32 1) - else() - set(LLVM_ON_UNIX 1) - set(LLVM_ON_WIN32 0) - endif() - endif() - if (LLVM_FOUND) - include(AddLLVM OPTIONAL) - endif() - - # LLVM Options -------------------------------------------------------------- - if (NOT DEFINED LLVM_INCLUDE_TESTS) - set(LLVM_INCLUDE_TESTS ${LLVM_FOUND}) - endif() - if (NOT DEFINED LLVM_INCLUDE_DOCS) - set(LLVM_INCLUDE_DOCS ${LLVM_FOUND}) - endif() - if (NOT DEFINED LLVM_ENABLE_SPHINX) - set(LLVM_ENABLE_SPHINX OFF) - endif() - - # In a standalone build, we don't have llvm to automatically generate the - # llvm-lit script for us. So we need to provide an explicit directory that - # the configurator should write the script into. - set(LLVM_LIT_OUTPUT_DIR "${libcxx_BINARY_DIR}/bin") - - if (LLVM_INCLUDE_TESTS) - # Required LIT Configuration ------------------------------------------------ - # Define the default arguments to use with 'lit', and an option for the user - # to override. - set(LLVM_DEFAULT_EXTERNAL_LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py") - set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported") - if (MSVC OR XCODE) - set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") - endif() - set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") - endif() - - # Required doc configuration - if (LLVM_ENABLE_SPHINX) - find_package(Sphinx REQUIRED) - endif() - - if (LLVM_ON_UNIX AND NOT APPLE) - set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) - else() - set(LLVM_HAVE_LINK_VERSION_SCRIPT 0) - endif() -endmacro(configure_out_of_tree_llvm) - -configure_out_of_tree_llvm() diff --git a/lib/libcxx/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake b/lib/libcxx/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake deleted file mode 100644 index a0669365bf9..00000000000 --- a/lib/libcxx/cmake/Modules/MacroEnsureOutOfSourceBuild.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# MACRO_ENSURE_OUT_OF_SOURCE_BUILD(<errorMessage>) - -macro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage ) - -string( COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" _insource ) -if( _insource ) - message( SEND_ERROR "${_errorMessage}" ) - message( FATAL_ERROR - "In-source builds are not allowed. - CMake would overwrite the makefiles distributed with Compiler-RT. - Please create a directory and run cmake from there, passing the path - to this source directory as the last argument. - This process created the file `CMakeCache.txt' and the directory `CMakeFiles'. - Please delete them." - ) -endif( _insource ) - -endmacro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD ) |