summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2018-04-09 04:36:04 +0000
committerPetr Hosek <phosek@chromium.org>2018-04-09 04:36:04 +0000
commitf73514c81060cfb8f718b2b18322fe902a9d6f8c (patch)
tree58fc7b626a7aedfa2db5a33390d8f5d5212acb5f /libcxx
parente10ef3548f7a413fc5ad26e212c792b3aebd77f4 (diff)
downloadbcm5719-llvm-f73514c81060cfb8f718b2b18322fe902a9d6f8c.tar.gz
bcm5719-llvm-f73514c81060cfb8f718b2b18322fe902a9d6f8c.zip
Revert "[CMake] Use custom command and target to install libc++ headers"
This reverts commit r329544 which is failing on libcxx standalone bots. llvm-svn: 329545
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/NOTES.TXT1
-rw-r--r--libcxx/cmake/Modules/HandleLibCXXABI.cmake24
-rw-r--r--libcxx/include/CMakeLists.txt251
-rw-r--r--libcxx/lib/CMakeLists.txt3
4 files changed, 40 insertions, 239 deletions
diff --git a/libcxx/NOTES.TXT b/libcxx/NOTES.TXT
index 24d245d437c..f0597de64ae 100644
--- a/libcxx/NOTES.TXT
+++ b/libcxx/NOTES.TXT
@@ -26,4 +26,3 @@ to libc++.
1. Add a test under `test/libcxx` that the header defines `_LIBCPP_VERSION`.
2. Update `test/libcxx/double_include.sh.cpp` to include the new header.
3. Create a submodule in `include/module.modulemap` for the new header.
-4. Update the include/CMakeLists.txt file to include the new header.
diff --git a/libcxx/cmake/Modules/HandleLibCXXABI.cmake b/libcxx/cmake/Modules/HandleLibCXXABI.cmake
index 851ff9ec19a..558e11ba2cc 100644
--- a/libcxx/cmake/Modules/HandleLibCXXABI.cmake
+++ b/libcxx/cmake/Modules/HandleLibCXXABI.cmake
@@ -47,22 +47,12 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
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}/${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}")
-
- set(dst "${CMAKE_BINARY_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}")
-
+ file(COPY "${incpath}/${fpath}"
+ DESTINATION "${LIBCXX_BINARY_INCLUDE_DIR}/${dstdir}"
+ )
+ file(COPY "${incpath}/${fpath}"
+ DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1/${dstdir}"
+ )
if (LIBCXX_INSTALL_HEADERS)
install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dstdir}
@@ -70,6 +60,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
endif()
+ list(APPEND abilib_headers "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}")
endif()
endforeach()
if (NOT found)
@@ -78,7 +69,6 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
endforeach()
include_directories("${LIBCXX_BINARY_INCLUDE_DIR}")
- add_custom_target(cxx-abi-headers ALL DEPENDS ${abilib_headers})
endmacro()
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index c84f36161af..4aa19eae6bf 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -1,183 +1,5 @@
-set(files
- __bit_reference
- __bsd_locale_defaults.h
- __bsd_locale_fallbacks.h
- __debug
- __functional_03
- __functional_base
- __functional_base_03
- __hash_table
- __libcpp_version
- __locale
- __mutex_base
- __nullptr
- __split_buffer
- __sso_allocator
- __std_stream
- __string
- __threading_support
- __tree
- __tuple
- __undef_macros
- algorithm
- any
- array
- atomic
- bitset
- cassert
- ccomplex
- cctype
- cerrno
- cfenv
- cfloat
- chrono
- cinttypes
- ciso646
- climits
- clocale
- cmath
- codecvt
- compare
- complex
- complex.h
- condition_variable
- csetjmp
- csignal
- cstdarg
- cstdbool
- cstddef
- cstdint
- cstdio
- cstdlib
- cstring
- ctgmath
- ctime
- ctype.h
- cwchar
- cwctype
- deque
- errno.h
- exception
- experimental/__config
- experimental/__memory
- experimental/algorithm
- experimental/any
- experimental/chrono
- experimental/coroutine
- experimental/deque
- experimental/dynarray
- experimental/filesystem
- experimental/forward_list
- experimental/functional
- experimental/iterator
- experimental/list
- experimental/map
- experimental/memory_resource
- experimental/numeric
- experimental/optional
- experimental/propagate_const
- experimental/ratio
- experimental/regex
- experimental/set
- experimental/string
- experimental/string_view
- experimental/system_error
- experimental/tuple
- experimental/type_traits
- experimental/unordered_map
- experimental/unordered_set
- experimental/utility
- experimental/vector
- ext/__hash
- ext/hash_map
- ext/hash_set
- float.h
- forward_list
- fstream
- functional
- future
- initializer_list
- inttypes.h
- iomanip
- ios
- iosfwd
- iostream
- istream
- iterator
- limits
- limits.h
- list
- locale
- locale.h
- map
- math.h
- memory
- module.modulemap
- mutex
- new
- numeric
- optional
- ostream
- queue
- random
- ratio
- regex
- scoped_allocator
- set
- setjmp.h
- shared_mutex
- sstream
- stack
- stdbool.h
- stddef.h
- stdexcept
- stdint.h
- stdio.h
- stdlib.h
- streambuf
- string
- string.h
- string_view
- strstream
- system_error
- tgmath.h
- thread
- tuple
- type_traits
- typeindex
- typeinfo
- unordered_map
- unordered_set
- utility
- valarray
- variant
- vector
- version
- wchar.h
- wctype.h
- )
-
-if(LIBCXX_INSTALL_SUPPORT_HEADERS)
- set(files
- ${files}
- support/android/locale_bionic.h
- support/fuchsia/xlocale.h
- support/ibm/limits.h
- support/ibm/locale_mgmt_aix.h
- support/ibm/support.h
- support/ibm/xlocale.h
- support/musl/xlocale.h
- support/newlib/xlocale.h
- support/solaris/floatingpoint.h
- support/solaris/wchar.h
- support/solaris/xlocale.h
- support/win32/limits_msvc_win32.h
- support/win32/locale_win32.h
- support/xlocale/__nop_locale_mgmt.h
- support/xlocale/__posix_l_fallback.h
- support/xlocale/__strtonum_fallback.h
- support/xlocale/xlocale.h
- )
+if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
+ set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
endif()
if (LIBCXX_NEEDS_SITE_CONFIG)
@@ -192,56 +14,44 @@ if (LIBCXX_NEEDS_SITE_CONFIG)
${LIBCXX_BINARY_DIR}/__config_site
)
# Add a target that executes the generation commands.
- add_custom_target(cxx-generated-config ALL
+ add_custom_target(generate_config_header ALL
DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config)
- set(generated_config_deps cxx-generated-config)
-else()
- set(files
- ${files}
- __config
- )
+ set(generated_config_deps generate_config_header)
endif()
-if(NOT LIBCXX_USING_INSTALLED_LLVM AND LLVM_BINARY_DIR)
- set(output_dir ${LLVM_BINARY_DIR}/include/c++/v1)
+set(LIBCXX_HEADER_PATTERN
+ PATTERN "*"
+ PATTERN "CMakeLists.txt" EXCLUDE
+ PATTERN ".svn" EXCLUDE
+ PATTERN "__config_site.in" EXCLUDE
+ ${LIBCXX_SUPPORT_HEADER_PATTERN}
+ )
- set(out_files)
- foreach(f ${files})
- set(src ${CMAKE_CURRENT_SOURCE_DIR}/${f})
- set(dst ${output_dir}/${f})
- add_custom_command(OUTPUT ${dst}
- DEPENDS ${src}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
- COMMENT "Copying libc++'s ${f}...")
- list(APPEND out_files ${dst})
- endforeach()
+if(NOT LIBCXX_USING_INSTALLED_LLVM AND LLVM_BINARY_DIR)
+ file(COPY .
+ DESTINATION "${LLVM_BINARY_DIR}/include/c++/v1"
+ FILES_MATCHING
+ ${LIBCXX_HEADER_PATTERN}
+ )
if (LIBCXX_NEEDS_SITE_CONFIG)
# Copy the generated header as __config into build directory.
- set(src ${LIBCXX_BINARY_DIR}/__generated_config)
- set(dst ${output_dir}/__config)
- add_custom_command(OUTPUT ${dst}
- DEPENDS ${src} ${generated_config_deps}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
- COMMENT "Copying libc++'s __config")
- list(APPEND out_files ${dst})
+ add_custom_command(
+ TARGET generate_config_header POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${LIBCXX_BINARY_DIR}/__generated_config
+ ${LLVM_BINARY_DIR}/include/c++/v1/__config)
endif()
-
- add_custom_target(cxx-headers ALL DEPENDS ${out_files} ${abilib_headers})
-else()
- add_custom_target(cxx-headers)
endif()
-set_target_properties(cxx-headers PROPERTIES FOLDER "Misc")
if (LIBCXX_INSTALL_HEADERS)
- foreach(file ${files})
- get_filename_component(dir ${file} DIRECTORY)
- install(FILES ${file}
- DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dir}
- COMPONENT cxx-headers
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- )
- endforeach()
+ install(DIRECTORY .
+ DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
+ COMPONENT cxx-headers
+ FILES_MATCHING
+ ${LIBCXX_HEADER_PATTERN}
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ )
if (LIBCXX_NEEDS_SITE_CONFIG)
# Install the generated header as __config.
@@ -253,6 +63,8 @@ if (LIBCXX_INSTALL_HEADERS)
endif()
if (NOT CMAKE_CONFIGURATION_TYPES)
+ # this target is just needed as a placeholder for the distribution target
+ add_custom_target(cxx-headers)
add_custom_target(install-cxx-headers
DEPENDS cxx-headers ${generated_config_deps}
COMMAND "${CMAKE_COMMAND}"
@@ -261,6 +73,7 @@ if (LIBCXX_INSTALL_HEADERS)
# Stripping is a no-op for headers
add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-headers)
+ add_custom_target(libcxx-headers)
add_custom_target(install-libcxx-headers DEPENDS install-cxx-headers)
add_custom_target(install-libcxx-headers-stripped DEPENDS install-cxx-headers-stripped)
endif()
diff --git a/libcxx/lib/CMakeLists.txt b/libcxx/lib/CMakeLists.txt
index ff74076a5ea..30fdc307507 100644
--- a/libcxx/lib/CMakeLists.txt
+++ b/libcxx/lib/CMakeLists.txt
@@ -283,8 +283,7 @@ if (LIBCXX_ENABLE_STATIC)
endif()
# Add a meta-target for both libraries.
-add_custom_target(cxx DEPENDS ${LIBCXX_TARGETS})
-add_dependencies(cxx cxx-headers)
+add_custom_target(cxx DEPENDS ${LIBCXX_TARGETS} ${generated_config_deps})
if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
file(GLOB LIBCXX_EXPERIMENTAL_SOURCES ../src/experimental/*.cpp)
OpenPOWER on IntegriCloud