@@ -102,13 +102,13 @@ set(LIBRARY_BUILD_TYPE ${LIBRARY_BUILD_TYPE_def} CACHE STRING "Build type to use
102102set_property (CACHE LIBRARY_BUILD_TYPE PROPERTY STRINGS ${SUPPORTED_LIBRARY_BUILD_TYPES} )
103103
104104set (ENABLE_CXX_LIBS ${ENABLE_CXX_LIBS_def} CACHE BOOL "Build CXX libs" )
105- set (ENABLE_COMPILER_RT_LIBS ${ENABLE_COMPILER_RT_LIBS_def} CACHE BOOL "Build compiler-rt libraries." )
105+ set (ENABLE_COMPILER_RT_LIBS ${ENABLE_COMPILER_RT_LIBS_def} CACHE BOOL "Build and install the compiler-rt libraries." )
106106set (ENABLE_LIBC_TESTS ${ENABLE_LIBC_TESTS_def} CACHE BOOL "Enable libc tests (picolibc, newlib, newlib-nano or llvm-libc)." )
107107set (ENABLE_COMPILER_RT_TESTS ${ENABLE_COMPILER_RT_TESTS_def} CACHE BOOL "Enable compiler-rt tests." )
108108set (ENABLE_LIBCXX_TESTS ${ENABLE_LIBCXX_TESTS_def} CACHE BOOL "Enable libcxx tests." )
109109set (ENABLE_LLVMLIBC_MINOR_VARIANT ${ENABLE_LLVMLIBC_MINOR_VARIANT_def} CACHE BOOL "Install only the llvm-libc minor variant payload for this variant." )
110110set (LLVMLIBC_SUBARCHIVE_NAME ${LLVMLIBC_SUBARCHIVE_NAME_def} CACHE STRING "llvm-libc subarchive to install when ENABLE_LLVMLIBC_MINOR_VARIANT is enabled." )
111- set (ENABLE_LLVMLIBC_CORE_LIBS ${ENABLE_LLVMLIBC_CORE_LIBS_def} CACHE BOOL "Build and install the core llvm-libc library archives ." )
111+ set (ENABLE_LLVMLIBC_CORE_LIBS ${ENABLE_LLVMLIBC_CORE_LIBS_def} CACHE BOOL "Build and install the library archives from the llvm-libc build ." )
112112set (ENABLE_LLVMLIBC_SUPPORT_LIBS ${ENABLE_LLVMLIBC_SUPPORT_LIBS_def} CACHE BOOL "Build and install llvmlibc support libraries such as crt0 and semihost." )
113113set (LLVM_BINARY_DIR "" CACHE PATH "Path to LLVM toolchain root to build libraries with" )
114114option (LLVM_USE_RELATIVE_PATHS_IN_MACROS "Use relative paths in macro expansions" ON )
@@ -860,41 +860,9 @@ if(C_LIBRARY STREQUAL llvmlibc)
860860 -DLLVM_LIBC_SUBARCHIVE_NAME=${LLVMLIBC_SUBARCHIVE_NAME}
861861 )
862862
863+ set (llvmlibc_build_install_args)
863864 if (ENABLE_LLVMLIBC_CORE_LIBS OR ENABLE_LLVMLIBC_MINOR_VARIANT)
864- ExternalProject_Add (
865- llvmlibc
866- STAMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /stamp
867- BINARY_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /build
868- DOWNLOAD_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /dl
869- TMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /tmp
870- SOURCE_DIR ${llvmproject_src_dir} /runtimes
871- INSTALL_DIR llvmlibc/install
872- CMAKE_ARGS
873- ${compiler_launcher_cmake_args}
874- ${common_llvmlibc_cmake_args}
875- -DLIBC_TARGET_TRIPLE=${target_triple}
876- -DLIBC_CONF_TIME_64BIT=ON
877- -DLIBC_CONF_ERRNO_MODE=LIBC_ERRNO_MODE_SHARED
878- -DLIBC_CONF_PRINTF_DISABLE_FLOAT=OFF
879- -DLIBC_CONF_PRINTF_FLOAT_TO_STR_USE_FLOAT320=ON
880- -DLIBC_CONF_PRINTF_MODULAR=ON
881- -DLLVM_CMAKE_DIR=${LLVM_BINARY_DIR } /lib/cmake/llvm
882- -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
883- -DLLVM_ENABLE_RUNTIMES=libc
884- -DLLVM_LIBC_ALL_HEADERS=ON
885- -DLLVM_LIBC_FULL_BUILD=ON
886- -DLIBC_TEST_COMPILE_OPTIONS_DEFAULT=${llvmlibc_test_compile_options_default}
887- -DLIBC_TEST_LINK_OPTIONS_DEFAULT=${llvmlibc_test_link_options_default}
888- -DLIBC_TEST_CMD=${test_cmd}
889- -DLIBC_TEST_HERMETIC_ONLY=ON
890- -DLLVM_EXTERNAL_LIT=${external_lit_path}
891- -DLLVM_LIT_ARGS=${llvmlibc_lit_args}
892- STEP_TARGETS configure build install
893- USES_TERMINAL_CONFIGURE TRUE
894- USES_TERMINAL_BUILD TRUE
895- USES_TERMINAL_INSTALL TRUE
896- LIST_SEPARATOR ,
897- CONFIGURE_HANDLED_BY_BUILD TRUE
865+ list (APPEND llvmlibc_build_install_args
898866 INSTALL_COMMAND ${CMAKE_COMMAND } --install .
899867 COMMAND
900868 ${CMAKE_COMMAND }
@@ -908,40 +876,7 @@ if(C_LIBRARY STREQUAL llvmlibc)
908876 "${TEMP_LIB_DIR} /include"
909877 )
910878 else ()
911- ExternalProject_Add (
912- llvmlibc
913- STAMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /stamp
914- BINARY_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /build
915- DOWNLOAD_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /dl
916- TMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /tmp
917- SOURCE_DIR ${llvmproject_src_dir} /runtimes
918- INSTALL_DIR llvmlibc/install
919- CMAKE_ARGS
920- ${compiler_launcher_cmake_args}
921- ${common_llvmlibc_cmake_args}
922- -DLIBC_TARGET_TRIPLE=${target_triple}
923- -DLIBC_CONF_TIME_64BIT=ON
924- -DLIBC_CONF_ERRNO_MODE=LIBC_ERRNO_MODE_SHARED
925- -DLIBC_CONF_PRINTF_DISABLE_FLOAT=OFF
926- -DLIBC_CONF_PRINTF_FLOAT_TO_STR_USE_FLOAT320=ON
927- -DLIBC_CONF_PRINTF_MODULAR=ON
928- -DLLVM_CMAKE_DIR=${LLVM_BINARY_DIR } /lib/cmake/llvm
929- -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
930- -DLLVM_ENABLE_RUNTIMES=libc
931- -DLLVM_LIBC_ALL_HEADERS=ON
932- -DLLVM_LIBC_FULL_BUILD=ON
933- -DLIBC_TEST_COMPILE_OPTIONS_DEFAULT=${llvmlibc_test_compile_options_default}
934- -DLIBC_TEST_LINK_OPTIONS_DEFAULT=${llvmlibc_test_link_options_default}
935- -DLIBC_TEST_CMD=${test_cmd}
936- -DLIBC_TEST_HERMETIC_ONLY=ON
937- -DLLVM_EXTERNAL_LIT=${external_lit_path}
938- -DLLVM_LIT_ARGS=${llvmlibc_lit_args}
939- STEP_TARGETS configure build install
940- USES_TERMINAL_CONFIGURE TRUE
941- USES_TERMINAL_BUILD TRUE
942- USES_TERMINAL_INSTALL TRUE
943- LIST_SEPARATOR ,
944- CONFIGURE_HANDLED_BY_BUILD TRUE
879+ list (APPEND llvmlibc_build_install_args
945880 BUILD_COMMAND
946881 ${CMAKE_COMMAND }
947882 --build <BINARY_DIR>
@@ -954,6 +889,43 @@ if(C_LIBRARY STREQUAL llvmlibc)
954889 )
955890 endif ()
956891
892+ ExternalProject_Add (
893+ llvmlibc
894+ STAMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /stamp
895+ BINARY_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /build
896+ DOWNLOAD_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /dl
897+ TMP_DIR ${PROJECT_PREFIX} /llvmlibc/${VARIANT_BUILD_ID} /tmp
898+ SOURCE_DIR ${llvmproject_src_dir} /runtimes
899+ INSTALL_DIR llvmlibc/install
900+ CMAKE_ARGS
901+ ${compiler_launcher_cmake_args}
902+ ${common_llvmlibc_cmake_args}
903+ -DLIBC_TARGET_TRIPLE=${target_triple}
904+ -DLIBC_CONF_TIME_64BIT=ON
905+ -DLIBC_CONF_ERRNO_MODE=LIBC_ERRNO_MODE_SHARED
906+ -DLIBC_CONF_PRINTF_DISABLE_FLOAT=OFF
907+ -DLIBC_CONF_PRINTF_FLOAT_TO_STR_USE_FLOAT320=ON
908+ -DLIBC_CONF_PRINTF_MODULAR=ON
909+ -DLLVM_CMAKE_DIR=${LLVM_BINARY_DIR } /lib/cmake/llvm
910+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
911+ -DLLVM_ENABLE_RUNTIMES=libc
912+ -DLLVM_LIBC_ALL_HEADERS=ON
913+ -DLLVM_LIBC_FULL_BUILD=ON
914+ -DLIBC_TEST_COMPILE_OPTIONS_DEFAULT=${llvmlibc_test_compile_options_default}
915+ -DLIBC_TEST_LINK_OPTIONS_DEFAULT=${llvmlibc_test_link_options_default}
916+ -DLIBC_TEST_CMD=${test_cmd}
917+ -DLIBC_TEST_HERMETIC_ONLY=ON
918+ -DLLVM_EXTERNAL_LIT=${external_lit_path}
919+ -DLLVM_LIT_ARGS=${llvmlibc_lit_args}
920+ STEP_TARGETS configure build install
921+ USES_TERMINAL_CONFIGURE TRUE
922+ USES_TERMINAL_BUILD TRUE
923+ USES_TERMINAL_INSTALL TRUE
924+ LIST_SEPARATOR ,
925+ CONFIGURE_HANDLED_BY_BUILD TRUE
926+ ${llvmlibc_build_install_args}
927+ )
928+
957929 if (ENABLE_LLVMLIBC_SUPPORT_LIBS)
958930 ExternalProject_Add (
959931 llvmlibc-support
0 commit comments