forked from OSchip/llvm-project
[libc] Add an optional `NAME` argument to `add_entrypoint_object` rule.
This argument can be used to specify the entrypoint name if it is different from the target name. Reviewers: gchatelet, abrachet Differential Revision: https://reviews.llvm.org/D74948
This commit is contained in:
parent
621388468b
commit
cab6ac2612
|
@ -101,6 +101,7 @@ set(ENTRYPOINT_OBJ_TARGET_TYPE "ENTRYPOINT_OBJ")
|
|||
# add_entrypoint_object(
|
||||
# <target_name>
|
||||
# [REDIRECTED] # Specified if the entrypoint is redirected.
|
||||
# [NAME] <the C name of the entrypoint if different from target_name>
|
||||
# SRCS <list of .cpp files>
|
||||
# HDRS <list of .h files>
|
||||
# DEPENDS <list of dependencies>
|
||||
|
@ -109,7 +110,7 @@ function(add_entrypoint_object target_name)
|
|||
cmake_parse_arguments(
|
||||
"ADD_ENTRYPOINT_OBJ"
|
||||
"REDIRECTED" # Optional argument
|
||||
"" # No single value arguments
|
||||
"NAME" # Single value arguments
|
||||
"SRCS;HDRS;DEPENDS" # Multi value arguments
|
||||
${ARGN}
|
||||
)
|
||||
|
@ -120,6 +121,11 @@ function(add_entrypoint_object target_name)
|
|||
message(FATAL_ERROR "`add_entrypoint_object` rule requires HDRS to be specified.")
|
||||
endif()
|
||||
|
||||
set(entrypoint_name ${target_name})
|
||||
if(ADD_ENTRYPOINT_OBJ_NAME)
|
||||
set(entrypoint_name ${ADD_ENTRYPOINT_OBJ_NAME})
|
||||
endif()
|
||||
|
||||
add_library(
|
||||
"${target_name}_objects"
|
||||
# We want an object library as the objects will eventually get packaged into
|
||||
|
@ -168,7 +174,7 @@ function(add_entrypoint_object target_name)
|
|||
OUTPUT ${object_file}
|
||||
# We llvm-objcopy here as GNU-binutils objcopy does not support the 'hidden' flag.
|
||||
DEPENDS ${object_file_raw} ${llvm-objcopy}
|
||||
COMMAND $<TARGET_FILE:llvm-objcopy> --add-symbol "${target_name}=.llvm.libc.entrypoint.${target_name}:${alias_attributes}" ${object_file_raw} ${object_file}
|
||||
COMMAND $<TARGET_FILE:llvm-objcopy> --add-symbol "${entrypoint_name}=.llvm.libc.entrypoint.${entrypoint_name}:${alias_attributes}" ${object_file_raw} ${object_file}
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
|
|
Loading…
Reference in New Issue