@@ -9,6 +9,7 @@ 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
+ set (PROJECT_AUTO_RUN_FINALIZE FALSE )
12
13
13
14
14
15
# Project configuration
@@ -17,15 +18,43 @@ SET(CMAKE_VERBOSE_MAKEFILE TRUE)
17
18
SET (CXX_DISABLE_WERROR TRUE )
18
19
19
20
# 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" )
21
23
MESSAGE (FATAL_ERROR "\n Please run the following command first:\n git submodule update --init\n " )
22
24
ENDIF ()
23
25
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} )
29
58
30
59
# Project definition
31
60
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
@@ -47,6 +76,7 @@ ENDIF(BUILD_WITH_CPPAD_CODEGEN_BINDINGS)
47
76
48
77
ADD_PROJECT_DEPENDENCY(cppad 20180000.0 REQUIRED PKG_CONFIG_REQUIRES "cppad >= 20180000.0" )
49
78
ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES "eigen3 >= 3.0.5" )
79
+ FINDPYTHON()
50
80
ADD_PROJECT_DEPENDENCY(eigenpy 2.7.14 REQUIRED)
51
81
52
82
SET (${PROJECT_NAME} _HEADERS
@@ -140,3 +170,5 @@ PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS})
140
170
141
171
# Install catkin package.xml
142
172
INSTALL (FILES package.xml DESTINATION share/${PROJECT_NAME} )
173
+
174
+ setup_project_finalize()
0 commit comments