[libc-commits] [libc] d25b4fa - [libc][NFC] Make entrypoint alias targets real library targets. (#66044)
via libc-commits
libc-commits at lists.llvm.org
Wed Sep 13 08:35:28 PDT 2023
Author: Siva Chandra
Date: 2023-09-13T08:35:23-07:00
New Revision: d25b4fae93bf353e7d1b114a9fc2191fb74cfa9e
URL: https://github.com/llvm/llvm-project/commit/d25b4fae93bf353e7d1b114a9fc2191fb74cfa9e
DIFF: https://github.com/llvm/llvm-project/commit/d25b4fae93bf353e7d1b114a9fc2191fb74cfa9e.diff
LOG: [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.
Added:
Modified:
libc/cmake/modules/LLVMLibCObjectRules.cmake
Removed:
################################################################################
diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake
index 709acd9ad614fbe..4d5835cc6b4d809 100644
--- a/libc/cmake/modules/LLVMLibCObjectRules.cmake
+++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake
@@ -559,6 +559,8 @@ function(create_entrypoint_object fq_target_name)
return()
endif()
+ set(internal_target_name ${fq_target_name}.__internal__)
+
if(ADD_ENTRYPOINT_OBJ_ALIAS)
# Alias targets help one add aliases to other entrypoint object targets.
# One can use alias targets setup OS/machine independent entrypoint targets.
@@ -586,10 +588,22 @@ function(create_entrypoint_object fq_target_name)
message(FATAL_ERROR "The aliasee of an entrypoint alias should be an entrypoint.")
endif()
- add_custom_target(${fq_target_name})
- add_dependencies(${fq_target_name} ${fq_dep_name})
get_target_property(object_file ${fq_dep_name} "OBJECT_FILE")
get_target_property(object_file_raw ${fq_dep_name} "OBJECT_FILE_RAW")
+ add_library(
+ ${internal_target_name}
+ EXCLUDE_FROM_ALL
+ OBJECT
+ ${object_file_raw}
+ )
+ add_dependencies(${internal_target_name} ${fq_dep_name})
+ add_library(
+ ${fq_target_name}
+ EXCLUDE_FROM_ALL
+ OBJECT
+ ${object_file}
+ )
+ add_dependencies(${fq_target_name} ${fq_dep_name} ${internal_target_name})
set_target_properties(
${fq_target_name}
PROPERTIES
@@ -619,7 +633,6 @@ function(create_entrypoint_object fq_target_name)
"${ADD_ENTRYPOINT_OBJ_FLAGS}"
${ADD_ENTRYPOINT_OBJ_COMPILE_OPTIONS}
)
- set(internal_target_name ${fq_target_name}.__internal__)
set(include_dirs ${LIBC_SOURCE_DIR} ${LIBC_INCLUDE_DIR})
get_fq_deps_list(fq_deps_list ${ADD_ENTRYPOINT_OBJ_DEPENDS})
set(full_deps_list ${fq_deps_list} libc.src.__support.common)
More information about the libc-commits
mailing list