diff options
Diffstat (limited to 'cmake/SubmoduleUpdate.cmake')
-rw-r--r-- | cmake/SubmoduleUpdate.cmake | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/cmake/SubmoduleUpdate.cmake b/cmake/SubmoduleUpdate.cmake new file mode 100644 index 000000000..123db55bf --- /dev/null +++ b/cmake/SubmoduleUpdate.cmake @@ -0,0 +1,70 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +if(NOT CMAKE_SCRIPT_MODE_FILE) + message("This file should run only in script mode") + return() +endif() + +get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." REALPATH) +get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" REALPATH) + +include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf) +include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake) + +find_program(GIT_EXECUTABLE NAMES git REQUIRED) + +execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short=8 HEAD + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty + OUTPUT_VARIABLE SUBMODULE_NEW_SHA + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short=8 HEAD:src/3rdparty + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR} + OUTPUT_VARIABLE SUBMODULE_OLD_SHA + OUTPUT_STRIP_TRAILING_WHITESPACE +) +set(shas "${SUBMODULE_OLD_SHA}..${SUBMODULE_NEW_SHA}") +set(format "* %s") +execute_process( + COMMAND ${GIT_EXECUTABLE} log + --pretty=format:${format} + --abbrev-commit ${shas} + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty + OUTPUT_VARIABLE SUBMODULE_COMMITS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if(SUBMODULE_COMMITS) + message("commits found for ${shas}") + execute_process( + COMMAND ${GIT_EXECUTABLE} add src/3rdparty + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR} + ) + set(commits ${SUBMODULE_COMMITS}) + execute_process( + COMMAND ${GIT_EXECUTABLE} commit + --allow-empty + -m "Update Chromium" + -m "Submodule src/3rdparty ${shas}:\n${commits}" + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR} + RESULT_VARIABLE gitResult + OUTPUT_VARIABLE gitOutput + ERROR_VARIABLE gitError + ) + + if(NOT gitResult EQUAL 0) + message(FATAL_ERROR "\n-- Git Commit FAILED\n${gitOutput}\n${gitError}\n${gitResult}\n") + else() + string(REGEX REPLACE "\n$" "" gnOutput "${gitOutput}") + message("-- Git Commit ${gitOutput}") + execute_process( + COMMAND ${GIT_EXECUTABLE} show HEAD + WORKING_DIRECTORY ${WEBENGINE_ROOT_SOURCE_DIR} + ) + endif() +else() + message(FATAL_ERROR "-- Git Commit found no commits for ${shas}") +endif() |