diff options
| author | selsta <selsta@sent.at> | 2020-09-20 03:51:40 +0200 |
|---|---|---|
| committer | selsta <selsta@sent.at> | 2020-09-20 03:51:40 +0200 |
| commit | e1987522e2e5967c27955d90f752ba008a47f9ff (patch) | |
| tree | d17c6db8e18eaafd03844eb7c1ccb8a40323d82e | |
| parent | d313c2de377e5163a27835d28a835c274ee7abf4 (diff) | |
| download | monzero-gui-e1987522e2e5967c27955d90f752ba008a47f9ff.tar.gz monzero-gui-e1987522e2e5967c27955d90f752ba008a47f9ff.tar.xz monzero-gui-e1987522e2e5967c27955d90f752ba008a47f9ff.zip | |
cmake: support manual submodules
| -rw-r--r-- | CMakeLists.txt | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d4e556d0..3f437da7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,27 +29,29 @@ set(BUILD_GUI_DEPS ON) set(ARCH "x86-64") set(BUILD_64 ON) -find_package(Git) -if(GIT_FOUND) - if(NOT DEV_MODE) - function (check_submodule relative_path) - execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${relative_path} OUTPUT_VARIABLE localHead) - execute_process(COMMAND git rev-parse "HEAD:${relative_path}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE checkedHead) - string(COMPARE EQUAL "${localHead}" "${checkedHead}" upToDate) - if (upToDate) - message(STATUS "Submodule '${relative_path}' is up-to-date") - else() - message(FATAL_ERROR "Submodule '${relative_path}' is not using the checked head. Please update all submodules with\ngit submodule update --init --force --recursive\nor run cmake with -DMANUAL_SUBMODULES=1,\n or if you want to build from latest master run cmake with -DDEV_MODE=ON,\n or run make devmode") +if(NOT MANUAL_SUBMODULES) + find_package(Git) + if(GIT_FOUND) + if(NOT DEV_MODE) + function (check_submodule relative_path) + execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${relative_path} OUTPUT_VARIABLE localHead) + execute_process(COMMAND git rev-parse "HEAD:${relative_path}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE checkedHead) + string(COMPARE EQUAL "${localHead}" "${checkedHead}" upToDate) + if (upToDate) + message(STATUS "Submodule '${relative_path}' is up-to-date") + else() + message(FATAL_ERROR "Submodule '${relative_path}' is not using the checked head. Please update all submodules with\ngit submodule update --init --force --recursive\nor run cmake with -DMANUAL_SUBMODULES=1,\n or if you want to build from latest master run cmake with -DDEV_MODE=ON,\n or run make devmode") + endif() + endfunction () + message(STATUS "Checking submodules") + check_submodule(monero) + else() + execute_process(COMMAND ${GIT_EXECUTABLE} fetch WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_FETCH_RESULT) + execute_process(COMMAND ${GIT_EXECUTABLE} checkout -f origin/master WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_CHECKOUT_MASTER_RESULT) + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --force --recursive WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_SUBMODULE_UPDATE_RESULT) + if(NOT GIT_FETCH_RESULT EQUAL "0" OR NOT GIT_CHECKOUT_MASTER_RESULT EQUAL "0" OR NOT GIT_SUBMODULE_UPDATE_RESULT EQUAL "0") + message(FATAL_ERROR "Updating git submodule to master (-DDEV_MODE=ON) failed") endif() - endfunction () - message(STATUS "Checking submodules") - check_submodule(monero) - else() - execute_process(COMMAND ${GIT_EXECUTABLE} fetch WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_FETCH_RESULT) - execute_process(COMMAND ${GIT_EXECUTABLE} checkout -f origin/master WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_CHECKOUT_MASTER_RESULT) - execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --force --recursive WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/monero RESULT_VARIABLE GIT_SUBMODULE_UPDATE_RESULT) - if(NOT GIT_FETCH_RESULT EQUAL "0" OR NOT GIT_CHECKOUT_MASTER_RESULT EQUAL "0" OR NOT GIT_SUBMODULE_UPDATE_RESULT EQUAL "0") - message(FATAL_ERROR "Updating git submodule to master (-DDEV_MODE=ON) failed") endif() endif() endif() |
