From 5d496eb40060c5eb601a800e59385eb3d1bd7818 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel <guilhem.saurel@laas.fr> Date: Mon, 25 Oct 2021 18:58:30 +0200 Subject: [PATCH] [CMake] FetchContent on missing submodule --- CMakeLists.txt | 22 ++++++++++++++++------ python/CMakeLists.txt | 3 +-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9226fdc5..765d2abf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,18 @@ SET(PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE) SET(PROJECT_CUSTOM_HEADER_EXTENSION "hpp") # Check if the submodule cmake have been initialized +set(JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake") IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake/base.cmake") - MESSAGE(FATAL_ERROR "\nPlease run the following command first:\ngit submodule update --init\n") + IF(${CMAKE_VERSION} VERSION_LESS "3.14.0") + MESSAGE(FATAL_ERROR "\nPlease run the following command first:\ngit submodule update --init\n") + ELSE() + message(STATUS "JRL cmakemodules not found. Let's fetch it.") + include(FetchContent) + FetchContent_Declare("jrl-cmakemodules" + GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git") + FetchContent_MakeAvailable("jrl-cmakemodules") + FetchContent_GetProperties("jrl-cmakemodules" SOURCE_DIR JRL_CMAKE_MODULES) + ENDIF() ENDIF() # Disable -Werror on Unix for now. @@ -35,14 +45,14 @@ IF(DEFINED BUILD_UNIT_TESTS) SET(BUILD_TESTING ${BUILD_UNIT_TESTS}) ENDIF(DEFINED BUILD_UNIT_TESTS) -INCLUDE(cmake/base.cmake) +INCLUDE("${JRL_CMAKE_MODULES}/base.cmake") COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX) PROJECT(${PROJECT_NAME} ${PROJECT_ARGS}) -INCLUDE(cmake/boost.cmake) -INCLUDE(cmake/python.cmake) -INCLUDE(cmake/ide.cmake) -INCLUDE(cmake/apple.cmake) +INCLUDE("${JRL_CMAKE_MODULES}/boost.cmake") +INCLUDE("${JRL_CMAKE_MODULES}/python.cmake") +INCLUDE("${JRL_CMAKE_MODULES}/ide.cmake") +INCLUDE("${JRL_CMAKE_MODULES}/apple.cmake") OPTION(GENERATE_PYTHON_STUBS "Generate the Python stubs associated to the Python library" OFF) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index a8a37f32..75faa46f 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -7,7 +7,7 @@ SET(PYWRAP ${PROJECT_NAME}_pywrap) SET(PYWRAP ${PYWRAP} PARENT_SCOPE) MAKE_DIRECTORY("${${PROJECT_NAME}_BINARY_DIR}/python/${PROJECT_NAME}") -include(${PROJECT_SOURCE_DIR}/cmake/stubs.cmake) +include("${JRL_CMAKE_MODULES}/stubs.cmake") ADD_CUSTOM_TARGET(python) SET_TARGET_PROPERTIES(python PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD True) @@ -58,4 +58,3 @@ FOREACH(python ${PYTHON_FILES}) "${CMAKE_CURRENT_SOURCE_DIR}/eigenpy/${python}" DESTINATION ${${PYWRAP}_INSTALL_DIR}) ENDFOREACH(python) - -- GitLab