Skip to content

Commit 178f146

Browse files
authored
Test packaging (#1365)
* packaging: update test * packaging: test pkgconfig * ci: fix path * ci: fix test * cmake: fix path * cmake: fix typo * cmake: export variables * test/packaging: add test for FetchContent * cmake: sync submodule * ci: run external cmake example * ci: fix * ci: fix GIT_TAG * ci: fix branch name * ci: fix branch name extraction * ci: fix git url
1 parent 8f040db commit 178f146

File tree

6 files changed

+115
-17
lines changed

6 files changed

+115
-17
lines changed

.github/workflows/linux.yml

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,27 @@ jobs:
1212
os: [ubuntu-20.04,ubuntu-18.04]
1313

1414
steps:
15-
- uses: actions/checkout@v1
15+
- uses: actions/checkout@v2
16+
with:
17+
fetch-depth: 0
18+
submodules: recursive
19+
20+
# extract branch name
21+
- name: Get branch name (merge)
22+
if: github.event_name != 'pull_request'
23+
shell: bash
24+
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
25+
26+
# extract branch name on pull request
27+
- name: Get branch name (pull request)
28+
if: github.event_name == 'pull_request'
29+
shell: bash
30+
run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF})" >> $GITHUB_ENV
31+
32+
# print branch name
33+
- name: Debug
34+
run: echo ${{ env.BRANCH_NAME }}
35+
1636
- name: Register robotpkg
1737
run: |
1838
sudo sh -c "echo \"deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg\" >> /etc/apt/sources.list "
@@ -45,7 +65,6 @@ jobs:
4565
- name: Run cmake
4666
run: |
4767
git submodule update --init
48-
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/openrobots/lib/pkgconfig
4968
export PATH=$PATH:/opt/openrobots/bin
5069
export PYTHON3_DOT_VERSION=$(python3 -c "import sys; print(str(sys.version_info.major)+'.'+str(sys.version_info.minor))")
5170
export PYTHONPATH=${PYTHONPATH}:/opt/openrobots/lib/python$PYTHON3_DOT_VERSION/site-packages
@@ -59,13 +78,40 @@ jobs:
5978
export CTEST_OUTPUT_ON_FAILURE=1
6079
make test
6180
sudo make install
62-
cd ../unittest/packaging
81+
82+
- name: Test packaging
83+
run: |
84+
export PATH=$PATH:/opt/openrobots/bin
85+
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/openrobots/lib/pkgconfig
86+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openrobots/lib:/usr/local/lib:/usr/lib:/usr/lib/x86_64-linux-gnu
87+
cd ./unittest/packaging/cmake
6388
mkdir build
6489
cd build
6590
export CMAKE_PREFIX_PATH=/usr/local
6691
cmake ..
6792
make
6893
./run_rnea
6994
./load_urdf
70-
cd ../../../build
95+
cd ../../pkgconfig
96+
mkdir build
97+
cd build
98+
cmake ..
99+
make
100+
./run_rnea
101+
cd ../../external
102+
export PINOCCHIO_GIT_REPOSITORY="file://"$GITHUB_WORKSPACE
103+
#export PINOCCHIO_GIT_REPOSITORY=$(git remote get-url origin)
104+
export PINOCCHIO_GIT_TAG="test-external-"$(git rev-parse --short HEAD)
105+
git tag $PINOCCHIO_GIT_TAG
106+
mkdir build
107+
cd build
108+
cmake ..
109+
make
110+
./run_rnea
111+
./load_urdf
112+
113+
114+
- name: Uninstall project
115+
run: |
116+
cd build
71117
sudo make uninstall

CMakeLists.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ SET(CXX_DISABLE_WERROR True)
1717
SET(CMAKE_VERBOSE_MAKEFILE True)
1818

1919
# Check if the submodule cmake have been initialized
20-
IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake/base.cmake")
20+
IF(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/cmake/base.cmake")
2121
MESSAGE(FATAL_ERROR "\nPlease run the following command first:\ngit submodule update --init\n")
2222
ENDIF()
2323

2424
SET(DOXYGEN_USE_MATHJAX YES)
2525
SET(DOXYGEN_USE_TEMPLATE_CSS YES)
2626

27-
INCLUDE(cmake/base.cmake)
27+
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/cmake/base.cmake)
2828
COMPUTE_PROJECT_ARGS(PROJECT_ARGS LANGUAGES CXX)
2929
PROJECT(${PROJECT_NAME} ${PROJECT_ARGS})
3030

31-
INCLUDE(cmake/boost.cmake)
32-
INCLUDE(cmake/python.cmake)
33-
INCLUDE(cmake/ide.cmake)
34-
INCLUDE(cmake/apple.cmake)
31+
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/cmake/boost.cmake)
32+
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/cmake/python.cmake)
33+
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/cmake/ide.cmake)
34+
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/cmake/apple.cmake)
3535

3636
# If needed, set CMake policy for APPLE systems
3737
APPLY_DEFAULT_APPLE_CONFIGURATION()
@@ -45,7 +45,7 @@ ENDIF(WIN32)
4545
# --- OPTIONS ----------------------------------------
4646
OPTION(BUILD_BENCHMARK "Build the benchmarks" OFF)
4747
OPTION(BUILD_UTILS "Build the utils" OFF)
48-
OPTION(BUILD_PYTHON_INTERFACE "Build the Python binding" ON)
48+
OPTION(BUILD_PYTHON_INTERFACE "Build the Python bindings" ON)
4949
OPTION(BUILD_WITH_COMMIT_VERSION "Build libraries by setting specific commit version" OFF)
5050

5151
IF(DEFINED BUILD_UNIT_TESTS)
@@ -262,21 +262,27 @@ ADD_SUBDIRECTORY(benchmark)
262262

263263
# --- PACKAGING ----------------------------------------------------------------
264264
IF(BUILD_WITH_URDF_SUPPORT)
265+
SET(PINOCCHIO_USE_URDFDOM ON PARENT_SCOPE)
265266
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_URDFDOM \"\")")
266267
ENDIF()
267268
IF(BUILD_WITH_HPP_FCL_SUPPORT)
269+
SET(PINOCCHIO_USE_HPP_FCL ON)
268270
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_HPP_FCL \"\")")
269271
ENDIF()
270272
IF(BUILD_WITH_CPPAD_SUPPORT)
273+
SET(PINOCCHIO_USE_CPPAD ON)
271274
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_CPPAD \"\")")
272275
ENDIF()
273276
IF(BUILD_WITH_CPPAD_CODEGEN_SUPPORT)
277+
SET(PINOCCHIO_USE_CPPAD_CODEGEN ON)
274278
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_CPPAD_CODEGEN \"\")")
275279
ENDIF()
276280
IF(BUILD_WITH_CASADI_SUPPORT)
281+
SET(PINOCCHIO_USE_CASADI ON)
277282
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_CASADI \"\")")
278283
ENDIF()
279284
IF(BUILD_PYTHON_INTERFACE)
285+
SET(PINOCCHIO_WITH_PYTHON_INTERFACE ON)
280286
SET(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_WITH_PYTHON_INTERFACE \"\")")
281287
ENDIF()
282288

cmake

Submodule cmake updated 1 file

unittest/packaging/CMakeLists.txt renamed to unittest/packaging/cmake/CMakeLists.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ cmake_minimum_required(VERSION 2.6)
22

33
project(ExtraLib CXX)
44
find_package(pinocchio REQUIRED)
5-
find_package(PythonInterp REQUIRED)
6-
find_package(PythonLibs REQUIRED)
75

8-
set(PINOCCHIO_MODEL_DIR "${PROJECT_SOURCE_DIR}/../../models")
6+
set(PINOCCHIO_MODEL_DIR "${PROJECT_SOURCE_DIR}/../../../models")
97
add_definitions('-DPINOCCHIO_MODEL_DIR=\"${PINOCCHIO_MODEL_DIR}\"')
108

11-
add_executable(run_rnea run_rnea.cpp)
9+
add_executable(run_rnea ../run_rnea.cpp)
1210
target_link_libraries(run_rnea PUBLIC pinocchio::pinocchio)
1311

1412
if(DEFINED PINOCCHIO_USE_URDFDOM)
15-
add_executable(load_urdf load_urdf.cpp)
13+
add_executable(load_urdf ../load_urdf.cpp)
1614
target_link_libraries(load_urdf PUBLIC pinocchio::pinocchio)
1715
endif(DEFINED PINOCCHIO_USE_URDFDOM)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
cmake_minimum_required(VERSION 3.11)
2+
3+
project(ExtraLib CXX)
4+
5+
message(STATUS "PINOCCHIO_GIT_REPOSITORY: $ENV{PINOCCHIO_GIT_REPOSITORY}")
6+
message(STATUS "PINOCCHIO_GIT_TAG: $ENV{PINOCCHIO_GIT_TAG}")
7+
8+
include(FetchContent)
9+
FetchContent_Declare(
10+
#FetchContent_Populate(
11+
Pinocchio
12+
GIT_REPOSITORY $ENV{PINOCCHIO_GIT_REPOSITORY}
13+
GIT_TAG $ENV{PINOCCHIO_GIT_TAG}
14+
GIT_SUBMODULES cmake
15+
GIT_SHALLOW ON
16+
)
17+
18+
FetchContent_GetProperties(Pinocchio)
19+
if(NOT pinocchio_POPULATED) # name is lowercased
20+
FetchContent_Populate(Pinocchio)
21+
message(STATUS "pinocchio source dir: ${pinocchio_SOURCE_DIR}")
22+
message(STATUS "pinocchio binary dir: ${pinocchio_BINARY_DIR}")
23+
set(BUILD_PYTHON_INTERFACE OFF CACHE INTERNAL "Build Python bindings")
24+
set(BUILD_TESTING OFF CACHE INTERNAL "Build unit tests")
25+
add_subdirectory(${pinocchio_SOURCE_DIR} ${pinocchio_BINARY_DIR}) # name is lowercased
26+
endif()
27+
# or simply FetchContent_MakeAvailable(Pinocchio)
28+
29+
set(PINOCCHIO_MODEL_DIR "${PROJECT_SOURCE_DIR}/../../../models")
30+
add_definitions('-DPINOCCHIO_MODEL_DIR=\"${PINOCCHIO_MODEL_DIR}\"')
31+
32+
add_executable(run_rnea ../run_rnea.cpp)
33+
target_link_libraries(run_rnea PUBLIC pinocchio)
34+
35+
if(DEFINED PINOCCHIO_USE_URDFDOM)
36+
add_executable(load_urdf ../load_urdf.cpp)
37+
target_link_libraries(load_urdf PUBLIC pinocchio)
38+
endif(DEFINED PINOCCHIO_USE_URDFDOM)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
cmake_minimum_required(VERSION 2.6)
2+
3+
project(ExtraLib CXX)
4+
find_package(PkgConfig REQUIRED)
5+
pkg_check_modules(PINOCCHIO REQUIRED pinocchio)
6+
7+
include_directories(SYSTEM ${PINOCCHIO_INCLUDE_DIRS})
8+
add_executable(run_rnea ../run_rnea.cpp)
9+
target_link_libraries(run_rnea PUBLIC ${PINOCCHIO_LDFLAGS})
10+
message(STATUS "${PINOCCHIO_LDFLAGS}")

0 commit comments

Comments
 (0)