@@ -565,24 +565,19 @@ macro(add_custom_libcxx name prefix)
565
565
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} )
566
566
endif ()
567
567
568
- set (STAMP_DIR ${prefix} -stamps/ )
569
- set (BINARY_DIR ${prefix} -bins/ )
570
-
571
568
add_custom_target (${name} -clear
572
- COMMAND ${CMAKE_COMMAND} -E remove_directory ${BINARY_DIR}
573
- COMMAND ${CMAKE_COMMAND} -E remove_directory ${STAMP_DIR}
574
- COMMENT "Clobbering ${name} build and stamp directories"
569
+ COMMAND ${CMAKE_COMMAND} -E remove_directory ${prefix}
570
+ COMMENT "Clobbering ${name} build directories"
575
571
USES_TERMINAL
576
572
)
577
573
set_target_properties (${name} -clear PROPERTIES FOLDER "Compiler-RT Misc" )
578
574
579
575
add_custom_command (
580
576
OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${name}-clobber-stamp
581
577
DEPENDS ${LIBCXX_DEPS} ${toolchain_deps}
582
- COMMAND ${CMAKE_COMMAND} -E touch ${BINARY_DIR} /CMakeCache.txt
583
- COMMAND ${CMAKE_COMMAND} -E touch ${STAMP_DIR} /${name}-mkdir
578
+ COMMAND ${CMAKE_COMMAND} -E touch ${prefix} /CMakeCache.txt
584
579
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR} /${name}-clobber-stamp
585
- COMMENT "Clobbering bootstrap build and stamp directories"
580
+ COMMENT "Clobbering bootstrap build directories"
586
581
)
587
582
588
583
add_custom_target (${name} -clobber
@@ -629,36 +624,42 @@ macro(add_custom_libcxx name prefix)
629
624
630
625
ExternalProject_Add (${name}
631
626
DEPENDS ${name} -clobber ${LIBCXX_DEPS}
632
- PREFIX ${prefix}
633
- SOURCE_DIR ${COMPILER_RT_SOURCE_DIR} /cmake/Modules/CustomLibcxx
634
- STAMP_DIR ${STAMP_DIR}
635
- BINARY_DIR ${BINARY_DIR}
627
+ PREFIX ${CMAKE_CURRENT_BINARY_DIR} /${name}
628
+ SOURCE_DIR ${LLVM_MAIN_SRC_DIR} /../runtimes
629
+ BINARY_DIR ${prefix}
636
630
CMAKE_ARGS ${CMAKE_PASSTHROUGH_VARIABLES}
637
631
${compiler_args}
638
632
-DCMAKE_C_FLAGS=${LIBCXX_C_FLAGS}
639
633
-DCMAKE_CXX_FLAGS=${LIBCXX_CXX_FLAGS}
640
634
-DCMAKE_BUILD_TYPE=Release
641
635
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
642
636
-DLLVM_PATH=${LLVM_MAIN_SRC_DIR}
643
- -DLLVM_BINARY_DIR=${prefix}
644
- -DLLVM_LIBRARY_OUTPUT_INTDIR=${prefix}/lib
645
- -DCOMPILER_RT_LIBCXX_PATH=${COMPILER_RT_LIBCXX_PATH}
646
- -DCOMPILER_RT_LIBCXXABI_PATH=${COMPILER_RT_LIBCXXABI_PATH}
637
+ -DLLVM_ENABLE_RUNTIMES=libcxx|libcxxabi
638
+ -DLIBCXXABI_ENABLE_SHARED=OFF
639
+ -DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON
640
+ -DLIBCXXABI_INCLUDE_TESTS=OFF
641
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
642
+ -DLIBCXX_ENABLE_SHARED=OFF
643
+ -DLIBCXX_HERMETIC_STATIC_LIBRARY=ON
644
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
645
+ -DLIBCXX_INCLUDE_TESTS=OFF
646
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON
647
647
${LIBCXX_CMAKE_ARGS}
648
648
INSTALL_COMMAND ""
649
649
STEP_TARGETS configure build
650
650
BUILD_ALWAYS 1
651
651
USES_TERMINAL_CONFIGURE 1
652
652
USES_TERMINAL_BUILD 1
653
653
USES_TERMINAL_INSTALL 1
654
+ LIST_SEPARATOR |
654
655
EXCLUDE_FROM_ALL TRUE
655
656
BUILD_BYPRODUCTS "${prefix} /lib/libc++.a" "${prefix} /lib/libc++abi.a"
656
657
)
657
658
658
659
if (CMAKE_GENERATOR MATCHES "Make" )
659
- set (run_clean "$(MAKE)" "-C" "${BINARY_DIR } " "clean" )
660
+ set (run_clean "$(MAKE)" "-C" "${prefix } " "clean" )
660
661
else ()
661
- set (run_clean ${CMAKE_COMMAND} --build ${BINARY_DIR } --target clean
662
+ set (run_clean ${CMAKE_COMMAND} --build ${prefix } --target clean
662
663
--config "$<CONFIG>" )
663
664
endif ()
664
665
@@ -667,7 +668,7 @@ macro(add_custom_libcxx name prefix)
667
668
COMMENT "Cleaning ${name} ..."
668
669
DEPENDEES configure
669
670
${force_deps}
670
- WORKING_DIRECTORY ${BINARY_DIR }
671
+ WORKING_DIRECTORY ${prefix }
671
672
EXCLUDE_FROM_MAIN 1
672
673
USES_TERMINAL 1
673
674
)
0 commit comments