Skip to content

Commit d25b4fa

Browse files
authored
[libc][NFC] Make entrypoint alias targets real library targets. (#66044)
This is part of a libc wide CMake cleanup which aims to eliminate certain explicitly duplicated logic which is available in CMake-3.20. This change in particular makes the entrypoint aliases real library targets so that they can be treated as normal library targets by other libc build rules.
1 parent 62f793e commit d25b4fa

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

libc/cmake/modules/LLVMLibCObjectRules.cmake

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,8 @@ function(create_entrypoint_object fq_target_name)
559559
return()
560560
endif()
561561

562+
set(internal_target_name ${fq_target_name}.__internal__)
563+
562564
if(ADD_ENTRYPOINT_OBJ_ALIAS)
563565
# Alias targets help one add aliases to other entrypoint object targets.
564566
# One can use alias targets setup OS/machine independent entrypoint targets.
@@ -586,10 +588,22 @@ function(create_entrypoint_object fq_target_name)
586588
message(FATAL_ERROR "The aliasee of an entrypoint alias should be an entrypoint.")
587589
endif()
588590

589-
add_custom_target(${fq_target_name})
590-
add_dependencies(${fq_target_name} ${fq_dep_name})
591591
get_target_property(object_file ${fq_dep_name} "OBJECT_FILE")
592592
get_target_property(object_file_raw ${fq_dep_name} "OBJECT_FILE_RAW")
593+
add_library(
594+
${internal_target_name}
595+
EXCLUDE_FROM_ALL
596+
OBJECT
597+
${object_file_raw}
598+
)
599+
add_dependencies(${internal_target_name} ${fq_dep_name})
600+
add_library(
601+
${fq_target_name}
602+
EXCLUDE_FROM_ALL
603+
OBJECT
604+
${object_file}
605+
)
606+
add_dependencies(${fq_target_name} ${fq_dep_name} ${internal_target_name})
593607
set_target_properties(
594608
${fq_target_name}
595609
PROPERTIES
@@ -619,7 +633,6 @@ function(create_entrypoint_object fq_target_name)
619633
"${ADD_ENTRYPOINT_OBJ_FLAGS}"
620634
${ADD_ENTRYPOINT_OBJ_COMPILE_OPTIONS}
621635
)
622-
set(internal_target_name ${fq_target_name}.__internal__)
623636
set(include_dirs ${LIBC_SOURCE_DIR} ${LIBC_INCLUDE_DIR})
624637
get_fq_deps_list(fq_deps_list ${ADD_ENTRYPOINT_OBJ_DEPENDS})
625638
set(full_deps_list ${fq_deps_list} libc.src.__support.common)

0 commit comments

Comments
 (0)