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}" )