Author: phosek Date: Sun Apr 8 21:36:04 2018 New Revision: 329545 URL: http://llvm.org/viewvc/llvm-project?rev=329545&view=rev Log: Revert "[CMake] Use custom command and target to install libc++ headers"
This reverts commit r329544 which is failing on libcxx standalone bots. Modified: libcxx/trunk/NOTES.TXT libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmake libcxx/trunk/include/CMakeLists.txt libcxx/trunk/lib/CMakeLists.txt Modified: libcxx/trunk/NOTES.TXT URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/NOTES.TXT?rev=329545&r1=329544&r2=329545&view=diff ============================================================================== --- libcxx/trunk/NOTES.TXT (original) +++ libcxx/trunk/NOTES.TXT Sun Apr 8 21:36:04 2018 @@ -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. Modified: libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmake URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmake?rev=329545&r1=329544&r2=329545&view=diff ============================================================================== --- libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmake (original) +++ libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmake Sun Apr 8 21:36:04 2018 @@ -47,22 +47,12 @@ macro(setup_abi_lib abidefines abilib ab 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 ab 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 ab endforeach() include_directories("${LIBCXX_BINARY_INCLUDE_DIR}") - add_custom_target(cxx-abi-headers ALL DEPENDS ${abilib_headers}) endmacro() Modified: libcxx/trunk/include/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/CMakeLists.txt?rev=329545&r1=329544&r2=329545&view=diff ============================================================================== --- libcxx/trunk/include/CMakeLists.txt (original) +++ libcxx/trunk/include/CMakeLists.txt Sun Apr 8 21:36:04 2018 @@ -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() Modified: libcxx/trunk/lib/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/CMakeLists.txt?rev=329545&r1=329544&r2=329545&view=diff ============================================================================== --- libcxx/trunk/lib/CMakeLists.txt (original) +++ libcxx/trunk/lib/CMakeLists.txt Sun Apr 8 21:36:04 2018 @@ -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) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits