@@ -9,6 +9,10 @@ SET(PROJECT_DESCRIPTION "Python bindings for CppAD and CppADCodeGen using Boost.
9
9
SET (PROJECT_URL "https://github.com/simple-robotics/pycppad" )
10
10
SET (PROJECT_CUSTOM_HEADER_EXTENSION "hpp" )
11
11
SET (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} )
12
16
13
17
14
18
# Project configuration
@@ -17,15 +21,44 @@ SET(CMAKE_VERBOSE_MAKEFILE TRUE)
17
21
SET (CXX_DISABLE_WERROR TRUE )
18
22
19
23
# 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" )
21
26
MESSAGE (FATAL_ERROR "\n Please run the following command first:\n git submodule update --init\n " )
22
27
ENDIF ()
23
28
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} )
29
62
30
63
# Project definition
31
64
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
@@ -47,6 +80,8 @@ ENDIF(BUILD_WITH_CPPAD_CODEGEN_BINDINGS)
47
80
48
81
ADD_PROJECT_DEPENDENCY(cppad 20180000.0 REQUIRED PKG_CONFIG_REQUIRES "cppad >= 20180000.0" )
49
82
ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES "eigen3 >= 3.0.5" )
83
+ SET (PYTHON_COMPONENTS Interpreter Development NumPy)
84
+ FINDPYTHON(REQUIRED)
50
85
ADD_PROJECT_DEPENDENCY(eigenpy 2.7.14 REQUIRED)
51
86
52
87
SET (${PROJECT_NAME} _HEADERS
@@ -140,3 +175,5 @@ PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS})
140
175
141
176
# Install catkin package.xml
142
177
INSTALL (FILES package.xml DESTINATION share/${PROJECT_NAME} )
178
+
179
+ setup_project_finalize()
0 commit comments