Skip to content

Commit abcd46f

Browse files
authored
Merge pull request #225 from jorisv/topic/workspace
Enable jrl-cmakemodules workspace compatiblity
2 parents 89d5a87 + 4923f54 commit abcd46f

File tree

5 files changed

+26
-17
lines changed

5 files changed

+26
-17
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66

77
## [Unreleased]
88

9+
### Added
10+
- Add compatibility with jrl-cmakemodules workspace ([#225](https://github.com/Gepetto/example-robot-data/pull/225))
11+
912
## [4.1.0] - 2024-01-29
1013

1114
- added CHANGELOG.md in https://github.com/Gepetto/example-robot-data/pull/193

CMakeLists.txt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ set(PROJECT_NAME example-robot-data)
66
set(PROJECT_DESCRIPTION
77
"Set of robot URDFs for benchmarking and developed examples")
88
set(PROJECT_URL https://github.com/${PROJECT_ORG}/${PROJECT_NAME})
9+
# To enable jrl-cmakemodules compatibility with workspace we must define the two
10+
# following lines
11+
set(PROJECT_AUTO_RUN_FINALIZE FALSE)
12+
set(PROJECT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
913

1014
# Project options
1115
option(BUILD_PYTHON_INTERFACE "Build the python unit tests and helpers" ON)
@@ -51,6 +55,7 @@ endif()
5155

5256
# JRL-cmakemodule setup
5357
include("${JRL_CMAKE_MODULES}/base.cmake")
58+
include("${JRL_CMAKE_MODULES}/python.cmake")
5459

5560
# Print initial message
5661
message(STATUS "${PROJECT_DESCRIPTION}, version ${PROJECT_VERSION}")
@@ -67,20 +72,26 @@ if(BUILD_PYTHON_INTERFACE)
6772
add_project_dependency(eigenpy 3.0.0 REQUIRED)
6873
add_project_dependency(pinocchio 2.7.0 REQUIRED)
6974
string(REGEX REPLACE "-" "_" PY_NAME ${PROJECT_NAME})
75+
findpython(REQUIRED)
7076
add_subdirectory(python)
7177
if(BUILD_TESTING)
7278
add_subdirectory(unittest)
7379
endif(BUILD_TESTING)
74-
endif(BUILD_PYTHON_INTERFACE)
80+
endif()
7581

7682
if(NOT INSTALL_PYTHON_INTERFACE_ONLY)
7783
add_library(${PROJECT_NAME} INTERFACE)
78-
target_include_directories(${PROJECT_NAME}
79-
INTERFACE $<INSTALL_INTERFACE:include>)
84+
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
85+
target_include_directories(
86+
${PROJECT_NAME}
87+
INTERFACE $<INSTALL_INTERFACE:include>
88+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
89+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
8090
target_compile_definitions(
8191
${PROJECT_NAME}
8292
INTERFACE
83-
EXAMPLE_ROBOT_DATA_MODEL_DIR="$<INSTALL_PREFIX>/share/${PROJECT_NAME}/robots"
93+
$<INSTALL_INTERFACE:EXAMPLE_ROBOT_DATA_MODEL_DIR="$<INSTALL_PREFIX>/share/${PROJECT_NAME}/robots">
94+
$<BUILD_INTERFACE:EXAMPLE_ROBOT_DATA_MODEL_DIR="${CMAKE_CURRENT_SOURCE_DIR}/robots">
8495
)
8596
install(
8697
TARGETS ${PROJECT_NAME}
@@ -91,4 +102,6 @@ if(NOT INSTALL_PYTHON_INTERFACE_ONLY)
91102
DESTINATION include/${CUSTOM_HEADER_DIR})
92103
install(DIRECTORY robots DESTINATION share/${PROJECT_NAME})
93104
install(FILES package.xml DESTINATION share/${PROJECT_NAME})
94-
endif(NOT INSTALL_PYTHON_INTERFACE_ONLY)
105+
endif()
106+
107+
setup_project_finalize()

python/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ set(${PROJECT_NAME}_PYTHON_FILES robots_loader.py __main__.py __init__.py)
22

33
foreach(python ${${PROJECT_NAME}_PYTHON_FILES})
44
python_install_on_site(${PY_NAME} ${python})
5-
endforeach(python ${${PROJECT_NAME}_PYTHON_FILES})
5+
endforeach()
66

77
configure_file(${PY_NAME}/path.py.in ${PY_NAME}/path.py)
88
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PY_NAME}/path.py

unittest/CMakeLists.txt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
1-
if(NOT pinocchio_FOUND)
2-
message(
3-
FATAL_ERROR
4-
"Pinocchio is required to build unit tests\n"
5-
"please either install Pinocchio or reconfigure without unit tests (-DBUILD_TESTING=OFF)"
6-
)
7-
endif(NOT pinocchio_FOUND)
8-
91
set(${PROJECT_NAME}_PYTHON_TESTS load)
102

113
foreach(TEST ${${PROJECT_NAME}_PYTHON_TESTS})
12-
add_python_unit_test("py-${TEST}" "unittest/test_${TEST}.py" python)
13-
endforeach(TEST ${${PROJECT_NAME}_PYTHON_TESTS})
4+
add_python_unit_test("${PROJECT_NAME}-py-${TEST}" "unittest/test_${TEST}.py"
5+
python)
6+
endforeach()

0 commit comments

Comments
 (0)