@@ -9,6 +9,10 @@ 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+ # To enable jrl-cmakemodules compatibility with workspace we must define the two
13+ # following lines
14+ SET (PROJECT_AUTO_RUN_FINALIZE FALSE )
15+ SET (PROJECT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} )
1216
1317
1418# Project configuration
@@ -17,15 +21,44 @@ SET(CMAKE_VERBOSE_MAKEFILE TRUE)
1721SET (CXX_DISABLE_WERROR TRUE )
1822
1923# Check if the submodule cmake have been initialized
20- IF (NOT EXISTS "${CMAKE_SOURCE_DIR} /cmake/base.cmake" )
24+ SET (JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR} /cmake" )
25+ IF (NOT EXISTS "${JRL_CMAKE_MODULES} /base.cmake" )
2126 MESSAGE (FATAL_ERROR "\n Please run the following command first:\n git submodule update --init\n " )
2227ENDIF ()
2328
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} )
29+ if (EXISTS "${JRL_CMAKE_MODULES} /base.cmake" )
30+ message (STATUS "JRL cmakemodules found in 'cmake/' git submodule" )
31+ else ()
32+ find_package (jrl-cmakemodules QUIET CONFIG)
33+ if (jrl-cmakemodules_FOUND)
34+ get_property (
35+ JRL_CMAKE_MODULES
36+ TARGET jrl-cmakemodules::jrl-cmakemodules
37+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES )
38+ message (STATUS "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES} " )
39+ elseif (${CMAKE_VERSION} VERSION_LESS "3.14.0" )
40+ message (
41+ FATAL_ERROR
42+ "\n Can't find jrl-cmakemodules. Please either:\n "
43+ " - use git submodule: 'git submodule update --init'\n "
44+ " - or install https://github.com/jrl-umi3218/jrl-cmakemodules\n "
45+ " - or upgrade your CMake version to >= 3.14 to allow automatic fetching\n " )
46+ else ()
47+ message (STATUS "JRL cmakemodules not found. Let's fetch it." )
48+ include (FetchContent)
49+ FetchContent_Declare("jrl-cmakemodules"
50+ GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git" )
51+ FetchContent_MakeAvailable("jrl-cmakemodules" )
52+ FetchContent_GetProperties("jrl-cmakemodules" SOURCE_DIR JRL_CMAKE_MODULES)
53+ endif ()
54+ endif ()
55+
56+ INCLUDE (${JRL_CMAKE_MODULES} /base.cmake)
57+ INCLUDE (${JRL_CMAKE_MODULES} /boost.cmake)
58+ INCLUDE (${JRL_CMAKE_MODULES} /ide.cmake)
59+ INCLUDE (${JRL_CMAKE_MODULES} /python.cmake)
60+
61+ SET (CMAKE_MODULE_PATH "${JRL_CMAKE_MODULES} /find-external/CppAD/" ${CMAKE_MODULE_PATH} )
2962
3063# Project definition
3164COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
@@ -47,6 +80,8 @@ ENDIF(BUILD_WITH_CPPAD_CODEGEN_BINDINGS)
4780
4881ADD_PROJECT_DEPENDENCY(cppad 20180000.0 REQUIRED PKG_CONFIG_REQUIRES "cppad >= 20180000.0" )
4982ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES "eigen3 >= 3.0.5" )
83+ SET (PYTHON_COMPONENTS Interpreter Development NumPy)
84+ FINDPYTHON(REQUIRED)
5085ADD_PROJECT_DEPENDENCY(eigenpy 2.7.14 REQUIRED)
5186
5287SET (${PROJECT_NAME} _HEADERS
@@ -140,3 +175,5 @@ PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS})
140175
141176# Install catkin package.xml
142177INSTALL (FILES package.xml DESTINATION share/${PROJECT_NAME} )
178+
179+ setup_project_finalize()
0 commit comments