mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-23 01:18:52 +08:00
Revert "[CMake] Use custom command and target to install libc++ headers"
This reverts commit r329544 which is failing on libcxx standalone bots. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@329545 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -26,4 +26,3 @@ to libc++.
|
|||||||
1. Add a test under `test/libcxx` that the header defines `_LIBCPP_VERSION`.
|
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.
|
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.
|
3. Create a submodule in `include/module.modulemap` for the new header.
|
||||||
4. Update the include/CMakeLists.txt file to include the new header.
|
|
||||||
|
@@ -47,22 +47,12 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
|
|||||||
set(found TRUE)
|
set(found TRUE)
|
||||||
get_filename_component(dstdir ${fpath} PATH)
|
get_filename_component(dstdir ${fpath} PATH)
|
||||||
get_filename_component(ifile ${fpath} NAME)
|
get_filename_component(ifile ${fpath} NAME)
|
||||||
set(src ${incpath}/${fpath})
|
file(COPY "${incpath}/${fpath}"
|
||||||
|
DESTINATION "${LIBCXX_BINARY_INCLUDE_DIR}/${dstdir}"
|
||||||
set(dst ${LIBCXX_BINARY_INCLUDE_DIR}/${dstdir}/${fpath})
|
)
|
||||||
add_custom_command(OUTPUT ${dst}
|
file(COPY "${incpath}/${fpath}"
|
||||||
DEPENDS ${src}
|
DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1/${dstdir}"
|
||||||
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}")
|
|
||||||
|
|
||||||
if (LIBCXX_INSTALL_HEADERS)
|
if (LIBCXX_INSTALL_HEADERS)
|
||||||
install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
|
install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
|
||||||
DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dstdir}
|
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
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
list(APPEND abilib_headers "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
if (NOT found)
|
if (NOT found)
|
||||||
@@ -78,7 +69,6 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
include_directories("${LIBCXX_BINARY_INCLUDE_DIR}")
|
include_directories("${LIBCXX_BINARY_INCLUDE_DIR}")
|
||||||
add_custom_target(cxx-abi-headers ALL DEPENDS ${abilib_headers})
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,183 +1,5 @@
|
|||||||
set(files
|
if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
|
||||||
__bit_reference
|
set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
|
||||||
__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
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (LIBCXX_NEEDS_SITE_CONFIG)
|
if (LIBCXX_NEEDS_SITE_CONFIG)
|
||||||
@@ -192,56 +14,44 @@ if (LIBCXX_NEEDS_SITE_CONFIG)
|
|||||||
${LIBCXX_BINARY_DIR}/__config_site
|
${LIBCXX_BINARY_DIR}/__config_site
|
||||||
)
|
)
|
||||||
# Add a target that executes the generation commands.
|
# 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)
|
DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config)
|
||||||
set(generated_config_deps cxx-generated-config)
|
set(generated_config_deps generate_config_header)
|
||||||
else()
|
|
||||||
set(files
|
|
||||||
${files}
|
|
||||||
__config
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT LIBCXX_USING_INSTALLED_LLVM AND LLVM_BINARY_DIR)
|
set(LIBCXX_HEADER_PATTERN
|
||||||
set(output_dir ${LLVM_BINARY_DIR}/include/c++/v1)
|
PATTERN "*"
|
||||||
|
PATTERN "CMakeLists.txt" EXCLUDE
|
||||||
|
PATTERN ".svn" EXCLUDE
|
||||||
|
PATTERN "__config_site.in" EXCLUDE
|
||||||
|
${LIBCXX_SUPPORT_HEADER_PATTERN}
|
||||||
|
)
|
||||||
|
|
||||||
set(out_files)
|
if(NOT LIBCXX_USING_INSTALLED_LLVM AND LLVM_BINARY_DIR)
|
||||||
foreach(f ${files})
|
file(COPY .
|
||||||
set(src ${CMAKE_CURRENT_SOURCE_DIR}/${f})
|
DESTINATION "${LLVM_BINARY_DIR}/include/c++/v1"
|
||||||
set(dst ${output_dir}/${f})
|
FILES_MATCHING
|
||||||
add_custom_command(OUTPUT ${dst}
|
${LIBCXX_HEADER_PATTERN}
|
||||||
DEPENDS ${src}
|
)
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
|
|
||||||
COMMENT "Copying libc++'s ${f}...")
|
|
||||||
list(APPEND out_files ${dst})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if (LIBCXX_NEEDS_SITE_CONFIG)
|
if (LIBCXX_NEEDS_SITE_CONFIG)
|
||||||
# Copy the generated header as __config into build directory.
|
# Copy the generated header as __config into build directory.
|
||||||
set(src ${LIBCXX_BINARY_DIR}/__generated_config)
|
add_custom_command(
|
||||||
set(dst ${output_dir}/__config)
|
TARGET generate_config_header POST_BUILD
|
||||||
add_custom_command(OUTPUT ${dst}
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
DEPENDS ${src} ${generated_config_deps}
|
${LIBCXX_BINARY_DIR}/__generated_config
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
|
${LLVM_BINARY_DIR}/include/c++/v1/__config)
|
||||||
COMMENT "Copying libc++'s __config")
|
|
||||||
list(APPEND out_files ${dst})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_target(cxx-headers ALL DEPENDS ${out_files} ${abilib_headers})
|
|
||||||
else()
|
|
||||||
add_custom_target(cxx-headers)
|
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(cxx-headers PROPERTIES FOLDER "Misc")
|
|
||||||
|
|
||||||
if (LIBCXX_INSTALL_HEADERS)
|
if (LIBCXX_INSTALL_HEADERS)
|
||||||
foreach(file ${files})
|
install(DIRECTORY .
|
||||||
get_filename_component(dir ${file} DIRECTORY)
|
DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
|
||||||
install(FILES ${file}
|
|
||||||
DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dir}
|
|
||||||
COMPONENT cxx-headers
|
COMPONENT cxx-headers
|
||||||
|
FILES_MATCHING
|
||||||
|
${LIBCXX_HEADER_PATTERN}
|
||||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
)
|
)
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if (LIBCXX_NEEDS_SITE_CONFIG)
|
if (LIBCXX_NEEDS_SITE_CONFIG)
|
||||||
# Install the generated header as __config.
|
# Install the generated header as __config.
|
||||||
@@ -253,6 +63,8 @@ if (LIBCXX_INSTALL_HEADERS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT CMAKE_CONFIGURATION_TYPES)
|
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
|
add_custom_target(install-cxx-headers
|
||||||
DEPENDS cxx-headers ${generated_config_deps}
|
DEPENDS cxx-headers ${generated_config_deps}
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
COMMAND "${CMAKE_COMMAND}"
|
||||||
@@ -261,6 +73,7 @@ if (LIBCXX_INSTALL_HEADERS)
|
|||||||
# Stripping is a no-op for headers
|
# Stripping is a no-op for headers
|
||||||
add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-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 DEPENDS install-cxx-headers)
|
||||||
add_custom_target(install-libcxx-headers-stripped DEPENDS install-cxx-headers-stripped)
|
add_custom_target(install-libcxx-headers-stripped DEPENDS install-cxx-headers-stripped)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -283,8 +283,7 @@ if (LIBCXX_ENABLE_STATIC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add a meta-target for both libraries.
|
# Add a meta-target for both libraries.
|
||||||
add_custom_target(cxx DEPENDS ${LIBCXX_TARGETS})
|
add_custom_target(cxx DEPENDS ${LIBCXX_TARGETS} ${generated_config_deps})
|
||||||
add_dependencies(cxx cxx-headers)
|
|
||||||
|
|
||||||
if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
|
if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
|
||||||
file(GLOB LIBCXX_EXPERIMENTAL_SOURCES ../src/experimental/*.cpp)
|
file(GLOB LIBCXX_EXPERIMENTAL_SOURCES ../src/experimental/*.cpp)
|
||||||
|
Reference in New Issue
Block a user