From c228e708678f32ced2efb26b9dfb24a515e8e4f7 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Tue, 28 Mar 2023 08:36:09 +0200 Subject: Add update-chromium target and unify 'Update Chromium' commits To save some typing when doing 3rdparty udpate introduce 'update-chromium' target, which creates commit with nicely formated commit message with shas, it can be used for example with following steps: * qtwebengine repo is at the origin HEAD with nothing stagged * there are some new commits in 3rdparty * code compiles and there are no issues * make update commit by typing in * ninja update-chromium or * cmake --build . --target update-chromium * push the commit You can also create the commit from with: cmake -P cmake/SubmoduleUpdate.cmake Pick-to: 6.5 Change-Id: Ia6b051cd2df0646707c2cc88175245841728794f Reviewed-by: Michal Klocek Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Yigit Akcay --- cmake/SubmoduleUpdate.cmake | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 cmake/SubmoduleUpdate.cmake (limited to 'cmake') 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() -- cgit v1.2.1