summaryrefslogtreecommitdiffstats
path: root/cmake/SubmoduleUpdate.cmake
blob: 123db55bf3af6a407a201ef6b3daaa21c6ec8826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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()