@@ -4,48 +4,57 @@ cmake_minimum_required(VERSION 3.22)
44set (PROJECT_ORG gepetto)
55set (PROJECT_NAME example-robot-data)
66set (PROJECT_DESCRIPTION
7- "Set of robot URDFs for benchmarking and developed examples" )
7+ "Set of robot URDFs for benchmarking and developed examples"
8+ )
89set (PROJECT_URL https://github.com/${PROJECT_ORG} /${PROJECT_NAME } )
910# To enable jrl-cmakemodules compatibility with workspace we must define the two
1011# following lines
1112set (PROJECT_AUTO_RUN_FINALIZE FALSE )
1213set (PROJECT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR } )
1314
1415if (DEFINED INSTALL_PYTHON_INTERFACE_ONLY)
15- message (
16- FATAL_ERROR
17- "CMake option INSTALL_PYTHON_INTERFACE_ONLY has been renamed BUILD_STANDALONE_PYTHON_INTERFACE"
18- )
16+ message (
17+ FATAL_ERROR
18+ "CMake option INSTALL_PYTHON_INTERFACE_ONLY has been renamed BUILD_STANDALONE_PYTHON_INTERFACE"
19+ )
1920endif ()
2021
2122# Project configuration
2223if (NOT BUILD_STANDALONE_PYTHON_INTERFACE)
23- set (PROJECT_USE_CMAKE_EXPORT TRUE )
24+ set (PROJECT_USE_CMAKE_EXPORT TRUE )
2425endif ()
2526set (CUSTOM_HEADER_DIR ${PROJECT_NAME } )
2627set (PROJECT_COMPATIBILITY_VERSION AnyNewerVersion)
2728
2829# Check if the submodule cmake have been initialized
2930set (JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR } /cmake" )
3031if (EXISTS "${JRL_CMAKE_MODULES} /base.cmake" )
31- message (STATUS "JRL cmakemodules found in 'cmake/' git submodule" )
32+ message (STATUS "JRL cmakemodules found in 'cmake/' git submodule" )
3233else ()
33- find_package (jrl-cmakemodules QUIET CONFIG )
34- if (jrl-cmakemodules_FOUND)
35- get_property (
36- JRL_CMAKE_MODULES
37- TARGET jrl-cmakemodules::jrl-cmakemodules
38- PROPERTY INTERFACE_INCLUDE_DIRECTORIES )
39- message (STATUS "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES} " )
40- else ()
41- message (STATUS "JRL cmakemodules not found. Let's fetch it." )
42- include (FetchContent )
43- FetchContent_Declare (
44- "jrl-cmakemodules"
45- GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git" )
46- FetchContent_MakeAvailable ("jrl-cmakemodules" )
47- FetchContent_GetProperties ("jrl-cmakemodules" SOURCE_DIR JRL_CMAKE_MODULES)
48- endif ()
34+ find_package (jrl-cmakemodules QUIET CONFIG )
35+ if (jrl-cmakemodules_FOUND)
36+ get_property (
37+ JRL_CMAKE_MODULES
38+ TARGET jrl-cmakemodules::jrl-cmakemodules
39+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES
40+ )
41+ message (
42+ STATUS
43+ "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES} "
44+ )
45+ else ()
46+ message (STATUS "JRL cmakemodules not found. Let's fetch it." )
47+ include (FetchContent )
48+ FetchContent_Declare (
49+ "jrl-cmakemodules"
50+ GIT_REPOSITORY "https://github.com/jrl-umi3218/jrl-cmakemodules.git"
51+ )
52+ FetchContent_MakeAvailable ("jrl-cmakemodules" )
53+ FetchContent_GetProperties (
54+ "jrl-cmakemodules"
55+ SOURCE_DIR JRL_CMAKE_MODULES
56+ )
57+ endif ()
4958endif ()
5059
5160# JRL-cmakemodule setup
@@ -64,40 +73,45 @@ compute_project_args(PROJECT_ARGS LANGUAGES CXX)
6473project (${PROJECT_NAME } ${PROJECT_ARGS} )
6574
6675if (BUILD_STANDALONE_PYTHON_INTERFACE)
67- add_project_dependency (${PROJECT_NAME } REQUIRED CONFIG )
76+ add_project_dependency (${PROJECT_NAME } REQUIRED CONFIG )
6877else ()
69- add_library (${PROJECT_NAME } INTERFACE )
70- add_library (${PROJECT_NAME } ::${PROJECT_NAME} ALIAS ${PROJECT_NAME } )
71- target_include_directories (
72- ${PROJECT_NAME }
73- INTERFACE $<INSTALL_INTERFACE :include >
74- $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR } /include >
75- $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >)
76- target_compile_definitions (
77- ${PROJECT_NAME }
78- INTERFACE
79- $<INSTALL_INTERFACE :EXAMPLE_ROBOT_DATA_MODEL_DIR ="$<INSTALL_PREFIX >/share /${PROJECT_NAME } /robots ">
80- $<BUILD_INTERFACE :EXAMPLE_ROBOT_DATA_MODEL_DIR ="${CMAKE_CURRENT_SOURCE_DIR } /robots ">
81- )
82- install (
83- TARGETS ${PROJECT_NAME }
84- EXPORT ${TARGETS_EXPORT_NAME}
85- DESTINATION lib)
78+ add_library (${PROJECT_NAME } INTERFACE )
79+ add_library (${PROJECT_NAME } ::${PROJECT_NAME} ALIAS ${PROJECT_NAME } )
80+ target_include_directories (
81+ ${PROJECT_NAME }
82+ INTERFACE
83+ $<INSTALL_INTERFACE :include >
84+ $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR } /include >
85+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
86+ )
87+ target_compile_definitions (
88+ ${PROJECT_NAME }
89+ INTERFACE
90+ $<INSTALL_INTERFACE :EXAMPLE_ROBOT_DATA_MODEL_DIR ="$<INSTALL_PREFIX >/share /${PROJECT_NAME } /robots ">
91+ $<BUILD_INTERFACE :EXAMPLE_ROBOT_DATA_MODEL_DIR ="${CMAKE_CURRENT_SOURCE_DIR } /robots ">
92+ )
93+ install (
94+ TARGETS ${PROJECT_NAME }
95+ EXPORT ${TARGETS_EXPORT_NAME}
96+ DESTINATION lib
97+ )
8698
87- install (FILES include/${CUSTOM_HEADER_DIR} /path.hpp
88- DESTINATION include/${CUSTOM_HEADER_DIR} )
89- install (DIRECTORY robots DESTINATION share/${PROJECT_NAME } )
99+ install (
100+ FILES include/${CUSTOM_HEADER_DIR} /path.hpp
101+ DESTINATION include/${CUSTOM_HEADER_DIR}
102+ )
103+ install (DIRECTORY robots DESTINATION share/${PROJECT_NAME } )
90104endif ()
91105
92106if (BUILD_PYTHON_INTERFACE)
93- add_project_dependency (eigenpy 3.0.0 REQUIRED )
94- add_project_dependency (pinocchio 2.7.0 REQUIRED )
95- string (REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME } )
96- findpython (REQUIRED )
97- add_subdirectory (python )
98- if (BUILD_TESTING)
99- add_subdirectory (unittest )
100- endif (BUILD_TESTING )
107+ add_project_dependency (eigenpy 3.0.0 REQUIRED )
108+ add_project_dependency (pinocchio 2.7.0 REQUIRED )
109+ string (REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME } )
110+ findpython (REQUIRED )
111+ add_subdirectory (python )
112+ if (BUILD_TESTING)
113+ add_subdirectory (unittest )
114+ endif (BUILD_TESTING )
101115endif ()
102116
103117setup_project_finalize ()
0 commit comments