diff options
| author | Petr Hosek <phosek@google.com> | 2026-01-09 23:21:16 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-09 23:21:16 -0800 |
| commit | 9a02a3c7f4cc0a5fa807556abc862f1c4121663d (patch) | |
| tree | d5aafb9a36e5b7a5085a13294304a3fa2e0733a4 /libc | |
| parent | f7e7132c8edddb78a72ab3f6b9e85f8f920c3773 (diff) | |
| download | llvm-9a02a3c7f4cc0a5fa807556abc862f1c4121663d.tar.gz llvm-9a02a3c7f4cc0a5fa807556abc862f1c4121663d.tar.bz2 llvm-9a02a3c7f4cc0a5fa807556abc862f1c4121663d.zip | |
[libc] Support for generating proxy headers (#175279)
This is a follow up to #174823 which adds build system integration.
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/cmake/modules/LLVMLibCHeaderRules.cmake | 10 | ||||
| -rw-r--r-- | libc/cmake/modules/LLVMLibCObjectRules.cmake | 1 | ||||
| -rw-r--r-- | libc/cmake/modules/LLVMLibCTestRules.cmake | 1 | ||||
| -rw-r--r-- | libc/utils/hdrgen/hdrgen/header.py | 1 |
4 files changed, 11 insertions, 2 deletions
diff --git a/libc/cmake/modules/LLVMLibCHeaderRules.cmake b/libc/cmake/modules/LLVMLibCHeaderRules.cmake index b092b37ffd8d..0704ae1c79e1 100644 --- a/libc/cmake/modules/LLVMLibCHeaderRules.cmake +++ b/libc/cmake/modules/LLVMLibCHeaderRules.cmake @@ -75,7 +75,7 @@ endfunction(add_header) function(add_gen_header target_name) cmake_parse_arguments( "ADD_GEN_HDR" - "PUBLIC" # No optional arguments + "PROXY;PUBLIC" # No optional arguments "YAML_FILE;GEN_HDR" # Single value arguments "DEPENDS" # Multi value arguments ${ARGN} @@ -94,7 +94,12 @@ function(add_gen_header target_name) set(absolute_path ${CMAKE_CURRENT_SOURCE_DIR}/${ADD_GEN_HDR_GEN_HDR}) file(RELATIVE_PATH relative_path ${LIBC_INCLUDE_SOURCE_DIR} ${absolute_path}) - set(out_file ${LIBC_INCLUDE_DIR}/${relative_path}) + if (ADD_GEN_HDR_PROXY) + set(out_file ${LIBC_BUILD_DIR}/hdr/${relative_path}) + set(proxy_arg "--proxy") + else() + set(out_file ${LIBC_INCLUDE_DIR}/${relative_path}) + endif() set(dep_file "${out_file}.d") set(yaml_file ${CMAKE_SOURCE_DIR}/${ADD_GEN_HDR_YAML_FILE}) @@ -113,6 +118,7 @@ function(add_gen_header target_name) --output ${out_file} --depfile ${dep_file} --write-if-changed + ${proxy_arg} ${entry_points} ${yaml_file} DEPENDS ${yaml_file} diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake index 6c534dfccec1..c90feff035c6 100644 --- a/libc/cmake/modules/LLVMLibCObjectRules.cmake +++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake @@ -92,6 +92,7 @@ function(create_object_library fq_target_name) ) target_include_directories(${fq_target_name} SYSTEM PRIVATE ${LIBC_INCLUDE_DIR}) target_include_directories(${fq_target_name} PRIVATE ${LIBC_SOURCE_DIR}) + target_include_directories(${fq_target_name} PRIVATE ${LIBC_BUILD_DIR}) target_compile_options(${fq_target_name} PRIVATE ${compile_options}) #loop through the deps, check if any have the TARGET_TYPE of ENTRYPOINT_OBJ_TARGET_TYPE, and print a warning if they do. diff --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake index 933b81b9f1d4..ba6493370876 100644 --- a/libc/cmake/modules/LLVMLibCTestRules.cmake +++ b/libc/cmake/modules/LLVMLibCTestRules.cmake @@ -290,6 +290,7 @@ function(create_libc_unittest fq_target_name) ) target_include_directories(${fq_build_target_name} SYSTEM PRIVATE ${LIBC_INCLUDE_DIR}) target_include_directories(${fq_build_target_name} PRIVATE ${LIBC_SOURCE_DIR}) + target_include_directories(${fq_build_target_name} PRIVATE ${LIBC_BUILD_DIR}) target_compile_options(${fq_build_target_name} PRIVATE ${compile_options}) target_link_options(${fq_build_target_name} PRIVATE ${link_options}) diff --git a/libc/utils/hdrgen/hdrgen/header.py b/libc/utils/hdrgen/hdrgen/header.py index 5d2350ab1436..b69d22494a7a 100644 --- a/libc/utils/hdrgen/hdrgen/header.py +++ b/libc/utils/hdrgen/hdrgen/header.py @@ -88,6 +88,7 @@ PROXY_TEMPLATE = """\ #ifdef LIBC_FULL_BUILD {include_lines} +{macro_lines} #else // Overlay mode |
