chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# Promote a target's INTERFACE_INCLUDE_DIRECTORIES to be treated as SYSTEM
|
||||
# includes by consumers, suppressing warnings from third-party headers.
|
||||
function(mark_target_includes_system)
|
||||
foreach(_target ${ARGN})
|
||||
if(NOT TARGET ${_target})
|
||||
continue()
|
||||
endif()
|
||||
get_target_property(_aliased ${_target} ALIASED_TARGET)
|
||||
if(_aliased)
|
||||
set(_target ${_aliased})
|
||||
endif()
|
||||
get_target_property(_inc ${_target} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(_inc)
|
||||
set_target_properties(${_target} PROPERTIES
|
||||
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_inc}")
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
function(apply_patch_once patch_name target_dir patch_file)
|
||||
set(mark_file "${target_dir}/.${patch_name}_patched")
|
||||
|
||||
if(EXISTS "${mark_file}")
|
||||
#message(STATUS "Patch '${patch_name}' already applied to ${target_dir}, skipping.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${patch_file}")
|
||||
message(FATAL_ERROR "Patch file '${patch_file}' not found!")
|
||||
endif()
|
||||
|
||||
#message(STATUS "Applying patch '${patch_name}' to ${target_dir} ...")
|
||||
execute_process(
|
||||
COMMAND git apply --ignore-space-change --ignore-whitespace "${patch_file}"
|
||||
WORKING_DIRECTORY "${target_dir}"
|
||||
RESULT_VARIABLE patch_result
|
||||
OUTPUT_VARIABLE patch_stdout
|
||||
ERROR_VARIABLE patch_stderr
|
||||
)
|
||||
|
||||
if(NOT patch_result EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to apply patch '${patch_name}' to ${target_dir}:\n${patch_stderr}")
|
||||
else()
|
||||
#message(STATUS "Patch '${patch_name}' applied successfully:\n${patch_stdout}")
|
||||
file(WRITE "${mark_file}" "patched")
|
||||
endif()
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user