Skip to content

Commit bbc26ed

Browse files
authored
Merge pull request #485 from jorisv/topic/workspace
Enable jrl-cmakemodules workspace compatiblity
2 parents 615b427 + c66ee14 commit bbc26ed

File tree

8 files changed

+53
-33
lines changed

8 files changed

+53
-33
lines changed

.github/workflows/conda/environment_all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ channels:
44
dependencies:
55
- eigen
66
- cmake
7-
- numpy
7+
- numpy<2.0
88
- pkg-config
99
- boost
1010
- ccache

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 ([#485](https://github.com/stack-of-tasks/eigenpy/pull/485))
11+
912
## [3.7.0] - 2024-06-11
1013

1114
### Added

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ set(PROJECT_USE_CMAKE_EXPORT TRUE)
1111
set(PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE)
1212
set(PROJECT_CUSTOM_HEADER_EXTENSION "hpp")
1313
set(PROJECT_COMPATIBILITY_VERSION AnyNewerVersion)
14+
# To enable jrl-cmakemodules compatibility with workspace we must define the two
15+
# following lines
16+
set(PROJECT_AUTO_RUN_FINALIZE FALSE)
17+
set(PROJECT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
1418

1519
# Check if the submodule cmake have been initialized
1620
set(JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake")
@@ -344,10 +348,12 @@ set(${PROJECT_NAME}_SOURCES
344348

345349
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES}
346350
${${PROJECT_NAME}_HEADERS})
351+
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
347352
set_standard_output_directory(${PROJECT_NAME})
348353
target_include_directories(
349354
${PROJECT_NAME} SYSTEM
350355
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
356+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
351357
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
352358

353359
modernize_target_link_libraries(
@@ -450,3 +456,5 @@ pkg_config_append_libs(${PROJECT_NAME})
450456
pkg_config_append_cflags("-I${PYTHON_INCLUDE_DIRS}")
451457
pkg_config_append_cflags("-I${NUMPY_INCLUDE_DIRS}")
452458
pkg_config_append_boost_libs(${BOOST_COMPONENTS})
459+
460+
setup_project_finalize()

doc/Doxyfile.extra.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
INPUT = @CMAKE_SOURCE_DIR@/src \
2-
@CMAKE_SOURCE_DIR@/doc/additionalDoc
3-
IMAGE_PATH = @CMAKE_SOURCE_DIR@/doc/pictures
1+
INPUT = @PROJECT_SOURCE_DIR@/src \
2+
@PROJECT_SOURCE_DIR@/doc/additionalDoc
3+
IMAGE_PATH = @PROJECT_SOURCE_DIR@/doc/pictures
44

55
FILE_PATTERNS = *.cc *.cpp *.h *.hpp *.hxx
66

python/CMakeLists.txt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ make_directory("${${PROJECT_NAME}_BINARY_DIR}/python/${PROJECT_NAME}")
1212
include(${JRL_CMAKE_MODULES}/python-helpers.cmake)
1313
include("${JRL_CMAKE_MODULES}/stubs.cmake")
1414

15-
add_custom_target(python)
16-
set_target_properties(python PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD True)
15+
add_custom_target(${PROJECT_NAME}_python)
16+
set_target_properties(${PROJECT_NAME}_python
17+
PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD True)
1718

1819
add_library(${PYWRAP} MODULE main.cpp)
19-
add_dependencies(python ${PYWRAP})
20+
add_dependencies(${PROJECT_NAME}_python ${PYWRAP})
2021
target_link_libraries(${PYWRAP} PUBLIC ${PROJECT_NAME})
2122

2223
python_build_get_target(python_build_target)
@@ -40,13 +41,13 @@ set_target_properties(
4041
PROPERTIES PREFIX ""
4142
SUFFIX ${PYTHON_EXT_SUFFIX}
4243
LIBRARY_OUTPUT_DIRECTORY
43-
"${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}"
44+
"${PROJECT_BINARY_DIR}/python/${PROJECT_NAME}"
4445
LIBRARY_OUTPUT_DIRECTORY_<CONFIG>
45-
"${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}"
46+
"${PROJECT_BINARY_DIR}/python/${PROJECT_NAME}"
4647
RUNTIME_OUTPUT_DIRECTORY
47-
"${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}"
48+
"${PROJECT_BINARY_DIR}/python/${PROJECT_NAME}"
4849
RUNTIME_OUTPUT_DIRECTORY_<CONFIG>
49-
"${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}")
50+
"${PROJECT_BINARY_DIR}/python/${PROJECT_NAME}")
5051

5152
if(UNIX)
5253
get_relative_rpath(${${PYWRAP}_INSTALL_DIR} ${PYWRAP}_INSTALL_RPATH)

unittest/CMakeLists.txt

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,36 @@
22
# Copyright (c) 2014-2019 CNRS Copyright (c) 2018-2024 INRIA
33
#
44

5-
macro(ADD_LIB_UNIT_TEST test)
5+
function(ADD_LIB_UNIT_TEST test)
66
create_ctest_build_tests_target()
7+
set(test_target ${PROJECT_NAME}-${test})
78

89
if(BUILD_TESTING)
9-
add_library(${test} SHARED "${test}.cpp")
10-
else(BUILD_TESTING)
11-
add_library(${test} SHARED EXCLUDE_FROM_ALL "${test}.cpp")
12-
endif(BUILD_TESTING)
13-
set_standard_output_directory(${test})
10+
add_library(${test_target} SHARED "${test}.cpp")
11+
else()
12+
add_library(${test_target} SHARED EXCLUDE_FROM_ALL "${test}.cpp")
13+
endif()
14+
set_standard_output_directory(${test_target})
1415

15-
target_link_libraries(${test} PUBLIC ${PROJECT_NAME})
16-
set_target_properties(${test} PROPERTIES PREFIX "")
16+
target_link_libraries(${test_target} PUBLIC ${PROJECT_NAME})
17+
set_target_properties(
18+
${test_target}
19+
PROPERTIES PREFIX ""
20+
LIBRARY_OUTPUT_NAME ${test}
21+
RUNTIME_OUTPUT_NAME ${test})
1722

18-
set_target_properties(${test} PROPERTIES SUFFIX ${PYTHON_EXT_SUFFIX})
23+
set_target_properties(${test_target} PROPERTIES SUFFIX ${PYTHON_EXT_SUFFIX})
1924

2025
add_test(
21-
NAME ${test}
26+
NAME ${test_target}
2227
COMMAND ${PYTHON_EXECUTABLE} -c "import ${test}"
23-
WORKING_DIRECTORY $<TARGET_FILE_DIR:${test}>)
28+
WORKING_DIRECTORY $<TARGET_FILE_DIR:${test_target}>)
2429

25-
add_dependencies(build_tests ${test})
30+
add_dependencies(build_tests ${test_target})
2631
if(NOT BUILD_TESTING)
27-
set_tests_properties(${test} PROPERTIES DEPENDS ctest_build_tests)
32+
set_tests_properties(${test_target} PROPERTIES DEPENDS ctest_build_tests)
2833
endif(NOT BUILD_TESTING)
29-
endmacro(ADD_LIB_UNIT_TEST)
34+
endfunction()
3035

3136
add_dependencies(build_tests ${PYWRAP})
3237
add_lib_unit_test(matrix)
@@ -58,17 +63,20 @@ if(CMAKE_CXX_STANDARD GREATER 14 AND CMAKE_CXX_STANDARD LESS 98)
5863
endif()
5964

6065
function(add_python_lib_unit_test name source)
61-
add_python_unit_test(${name} ${source} "lib" "bin")
66+
set(test_target ${PROJECT_NAME}-${name})
67+
add_python_unit_test(${test_target} ${source} "lib" "bin")
6268
endfunction()
6369

6470
function(add_python_eigenpy_lib_unit_test name source)
65-
add_python_unit_test(${name} ${source} "lib" "bin" "python")
66-
set_tests_properties(${name} PROPERTIES DEPENDS ${PYWRAP})
71+
set(test_target ${PROJECT_NAME}-${name})
72+
add_python_unit_test(${test_target} ${source} "lib" "bin" "python")
73+
set_tests_properties(${test_target} PROPERTIES DEPENDS ${PYWRAP})
6774
endfunction()
6875

6976
function(add_python_eigenpy_unit_test name source)
70-
add_python_unit_test(${name} ${source} "python")
71-
set_tests_properties(${name} PROPERTIES DEPENDS ${PYWRAP})
77+
set(test_target ${PROJECT_NAME}-${name})
78+
add_python_unit_test(${test_target} ${source} "python")
79+
set_tests_properties(${test_target} PROPERTIES DEPENDS ${PYWRAP})
7280
endfunction()
7381

7482
function(config_test test tagname opttype)
@@ -80,7 +88,7 @@ function(config_test test tagname opttype)
8088
configure_file(python/test_${test}.py.in
8189
${CMAKE_CURRENT_BINARY_DIR}/python/${py_file})
8290
add_lib_unit_test(${MODNAME})
83-
set(PYTHON_TEST_NAME "py-${test}-${tagname}")
91+
set(PYTHON_TEST_NAME "${PROJECT_NAME}-py-${test}-${tagname}")
8492
add_test(NAME ${PYTHON_TEST_NAME}
8593
COMMAND ${PYTHON_EXECUTABLE}
8694
"${CMAKE_CURRENT_BINARY_DIR}/python/${py_file}")

unittest/python/test_user_type.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ def test_cast(from_dtype, to_dtype):
6767

6868
v = user_type.CustomDouble(1)
6969
a = np.array(v)
70-
assert type(v) == a.dtype.type
70+
assert type(v) is a.dtype.type

0 commit comments

Comments
 (0)