@@ -9,6 +9,7 @@ SET(PROJECT_DESCRIPTION "Python bindings for CppAD and CppADCodeGen using Boost.
99SET (PROJECT_URL "https://github.com/simple-robotics/pycppad" )
1010SET (PROJECT_CUSTOM_HEADER_EXTENSION "hpp" )
1111SET (PROJECT_USE_CMAKE_EXPORT TRUE )
12+ set (PROJECT_AUTO_RUN_FINALIZE FALSE )
1213
1314
1415# Project configuration
@@ -17,15 +18,43 @@ SET(CMAKE_VERBOSE_MAKEFILE TRUE)
1718SET (CXX_DISABLE_WERROR TRUE )
1819
1920# Check if the submodule cmake have been initialized
20- IF (NOT EXISTS "${CMAKE_SOURCE_DIR} /cmake/base.cmake" )
21+ set (JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR} /cmake" )
22+ IF (NOT EXISTS "${JRL_CMAKE_MODULES} /base.cmake" )
2123 MESSAGE (FATAL_ERROR "\n Please run the following command first:\n git submodule update --init\n " )
2224ENDIF ()
2325
24- INCLUDE (cmake/base.cmake)
25- INCLUDE (cmake/boost.cmake)
26- INCLUDE (cmake/ide.cmake)
27-
28- SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR} /cmake/find-external/CppAD/" ${CMAKE_MODULE_PATH} )
26+ if (EXISTS "${JRL_CMAKE_MODULES} /base.cmake" )
27+ message (STATUS "JRL cmakemodules found in 'cmake/' git submodule" )
28+ else ()
29+ find_package (jrl-cmakemodules QUIET CONFIG)
30+ if (jrl-cmakemodules_FOUND)
31+ get_property (
32+ JRL_CMAKE_MODULES
33+ TARGET jrl-cmakemodules::jrl-cmakemodules
34+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES )
35+ message (STATUS "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES} " )
36+ elseif (${CMAKE_VERSION} VERSION_LESS "3.14.0" )
37+ message (
38+ FATAL_ERROR
39+ "\n Can't find jrl-cmakemodules. Please either:\n "
40+ " - use git submodule: 'git submodule update --init'\n "
41+ " - or install https://github.com/jrl-umi3218/jrl-cmakemodules\n "
42+ " - or upgrade your CMake version to >= 3.14 to allow automatic fetching\n " )
43+ else ()
44+ message (STATUS "JRL cmakemodules not found. Let's fetch it." )
45+ include (FetchContent)
46+ FetchContent_Declare("jrl-cmakemodules"
47+ GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git" )
48+ FetchContent_MakeAvailable("jrl-cmakemodules" )
49+ FetchContent_GetProperties("jrl-cmakemodules" SOURCE_DIR JRL_CMAKE_MODULES)
50+ endif ()
51+ endif ()
52+
53+ INCLUDE (${JRL_CMAKE_MODULES} /base.cmake)
54+ INCLUDE (${JRL_CMAKE_MODULES} /boost.cmake)
55+ INCLUDE (${JRL_CMAKE_MODULES} /ide.cmake)
56+
57+ SET (CMAKE_MODULE_PATH "${JRL_CMAKE_MODULES} /find-external/CppAD/" ${CMAKE_MODULE_PATH} )
2958
3059# Project definition
3160COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
@@ -47,6 +76,7 @@ ENDIF(BUILD_WITH_CPPAD_CODEGEN_BINDINGS)
4776
4877ADD_PROJECT_DEPENDENCY(cppad 20180000.0 REQUIRED PKG_CONFIG_REQUIRES "cppad >= 20180000.0" )
4978ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES "eigen3 >= 3.0.5" )
79+ FINDPYTHON()
5080ADD_PROJECT_DEPENDENCY(eigenpy 2.7.14 REQUIRED)
5181
5282SET (${PROJECT_NAME} _HEADERS
@@ -140,3 +170,5 @@ PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS})
140170
141171# Install catkin package.xml
142172INSTALL (FILES package.xml DESTINATION share/${PROJECT_NAME} )
173+
174+ setup_project_finalize()
0 commit comments