[CMake][libc] Support cross-compiling libc-hdrgen
This is useful when cross-compiling libc to another target in which case we first need to compile libc-hdrgen for host. We rely on the existing LLVM CMake infrastructure for that. Differential Revision: https://reviews.llvm.org/D95205
This commit is contained in:
parent
c4819eec1a
commit
1daaa6432e
@ -40,7 +40,7 @@ else()
|
||||
--print-resource-dir not supported by host compiler")
|
||||
endif()
|
||||
|
||||
option(LLVM_LIBC_ENABLE_LINTING "Enables linting of libc source files" ON)
|
||||
option(LLVM_LIBC_ENABLE_LINTING "Enables linting of libc source files" OFF)
|
||||
if(LLVM_LIBC_ENABLE_LINTING)
|
||||
if("clang-tools-extra" IN_LIST LLVM_ENABLE_PROJECTS
|
||||
AND "clang" IN_LIST LLVM_ENABLE_PROJECTS)
|
||||
@ -81,6 +81,10 @@ foreach(entrypoint IN LISTS TARGET_LIBC_ENTRYPOINTS TARGET_LIBM_ENTRYPOINTS)
|
||||
list(APPEND TARGET_ENTRYPOINT_NAME_LIST ${entrypoint_name})
|
||||
endforeach()
|
||||
|
||||
# We need to set up hdrgen first since other targets depend on it.
|
||||
add_subdirectory(utils/LibcTableGenUtil)
|
||||
add_subdirectory(utils/HdrGen)
|
||||
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(config)
|
||||
add_subdirectory(src)
|
||||
|
@ -89,14 +89,15 @@ function(add_gen_header target_name)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${out_file}
|
||||
COMMAND $<TARGET_FILE:libc-hdrgen> -o ${out_file} --header ${ADD_GEN_HDR_GEN_HDR}
|
||||
COMMAND ${LIBC_TABLEGEN_EXE} -o ${out_file} --header ${ADD_GEN_HDR_GEN_HDR}
|
||||
--def ${in_file} ${replacement_params} -I ${LIBC_SOURCE_DIR}
|
||||
${ENTRYPOINT_NAME_LIST_ARG}
|
||||
${LIBC_SOURCE_DIR}/config/${LIBC_TARGET_OS}/api.td
|
||||
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${in_file} ${fq_data_files} ${td_includes}
|
||||
${LIBC_SOURCE_DIR}/config/${LIBC_TARGET_OS}/api.td libc-hdrgen
|
||||
${LIBC_SOURCE_DIR}/config/${LIBC_TARGET_OS}/api.td
|
||||
${LIBC_TABLEGEN_EXE} ${LIBC_TABLEGEN_TARGET}
|
||||
)
|
||||
|
||||
get_fq_target_name(${target_name} fq_target_name)
|
||||
|
@ -1,7 +1,5 @@
|
||||
add_subdirectory(CPP)
|
||||
add_subdirectory(FPUtil)
|
||||
add_subdirectory(LibcTableGenUtil)
|
||||
add_subdirectory(HdrGen)
|
||||
add_subdirectory(MPFRWrapper)
|
||||
add_subdirectory(testutils)
|
||||
add_subdirectory(tools)
|
||||
|
@ -1,6 +1,6 @@
|
||||
set(LLVM_LINK_COMPONENTS Support)
|
||||
|
||||
add_tablegen(libc-hdrgen llvm-libc
|
||||
add_tablegen(libc-hdrgen LIBC
|
||||
Command.h
|
||||
Command.cpp
|
||||
Generator.cpp
|
||||
|
Loading…
x
Reference in New Issue
Block a user