cmake: determine list of extra built-ins dynamically
In 0a21d0e089
(Makefile: mark git-maintenance as a builtin,
2020-12-01), we marked git-maintenance as a builtin in the Makefile, but
forgot to do the same in `CMakeLists.txt`.
Rather than always play catch-up and adjust `git_builtin_extra`
manually, use the `BUILT_INS` definitions in the Makefile as
authoritative source and generate `git_builtin_extra` dynamically.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
898f80736c
commit
7fe07275be
@ -114,6 +114,16 @@ macro(parse_makefile_for_scripts list_var regex lang)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(parse_makefile_for_executables list_var regex)
|
||||
file(STRINGS ${CMAKE_SOURCE_DIR}/Makefile ${list_var} REGEX "^${regex} \\+= git-(.*)")
|
||||
string(REPLACE "${regex} +=" "" ${list_var} ${${list_var}})
|
||||
string(STRIP ${${list_var}} ${list_var}) #remove trailing/leading whitespaces
|
||||
string(REPLACE "git-" "" ${list_var} ${${list_var}}) #strip `git-` prefix
|
||||
string(REPLACE "\$X" ";" ${list_var} ${${list_var}}) #strip $X, ; is for converting the string into a list
|
||||
list(TRANSFORM ${list_var} STRIP) #remove trailing/leading whitespaces for each element in list
|
||||
list(REMOVE_ITEM ${list_var} "") #remove empty list elements
|
||||
endmacro()
|
||||
|
||||
include(CheckTypeSize)
|
||||
include(CheckCSourceRuns)
|
||||
include(CheckCSourceCompiles)
|
||||
@ -673,10 +683,7 @@ if(CURL_FOUND)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(git_builtin_extra
|
||||
cherry cherry-pick format-patch fsck-objects
|
||||
init merge-subtree restore show
|
||||
stage status switch whatchanged)
|
||||
parse_makefile_for_executables(git_builtin_extra "BUILT_INS")
|
||||
|
||||
#Creating hardlinks
|
||||
foreach(s ${git_SOURCES} ${git_builtin_extra})
|
||||
|
Loading…
Reference in New Issue
Block a user