snag/cmake/snag_patch.cmake

26 lines
793 B
CMake

cmake_minimum_required(VERSION 3.6)
find_program(PATCH_EXECUTABLE patch)
if(NOT PATCH_EXECUTABLE)
message(FATAL_ERROR "Patch utility not found! Install patch tool before continuing.")
endif()
set(PATCH_FILE "${CMAKE_SOURCE_DIR}/patches/config.patch")
set(PATCH_MARKER_FILE "${CMAKE_BINARY_DIR}/.config_patch_applied")
if(NOT EXISTS "${PATCH_FILE}")
message(WARNING "Patch file not found: ${PATCH_FILE}")
endif()
add_custom_command(
OUTPUT "${PATCH_MARKER_FILE}"
COMMAND "${PATCH_EXECUTABLE}" -p1 -i "${PATCH_FILE}" --reject-file=- --silent || exit 0
COMMAND cmake -E touch "${PATCH_MARKER_FILE}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMENT "Applying config.patch..."
VERBATIM
)
add_custom_target(apply_config_patch
DEPENDS "${PATCH_MARKER_FILE}"
)