diff --git a/.github/workflows/reloc.yml b/.github/workflows/reloc.yml new file mode 100644 index 0000000000000000000000000000000000000000..fd5cab798cf6be95e438ea0bc258dd1f73265f0f --- /dev/null +++ b/.github/workflows/reloc.yml @@ -0,0 +1,51 @@ +name: Ensure relocatable + +on: [push,pull_request] + +jobs: + relocatable: + name: Ensure relocatable + runs-on: ubuntu-latest + env: + CCACHE_DIR: /github/home/.ccache # Enable ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache + + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: actions/cache@v3 + with: + path: ${{ env.CCACHE_DIR }} + key: reloc + + - name: prepare cache dir + run: sudo mkdir -p ${CCACHE_DIR}/tmp && sudo chown -R $(id -un) ${CCACHE_DIR} + + - name: prepare work prefix + run: sudo mkdir -p /RELOC/SRC && sudo chown -R $(id -un) /RELOC + + - name: clone in /RELOC/SRC + run: git -C /RELOC/SRC clone --recursive $(pwd) + + - name: install dependencies + run: sudo apt install libboost-all-dev libeigen3-dev python-is-python3 python3-numpy python3-pip ccache + + - name: update CMake + run: pip install -U pip && pip install -U cmake + + - name: configure in /RELOC/BLD + run: cmake -S /RELOC/SRC/eigenpy -B /RELOC/BLD -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/RELOC/PFX + + - name: build in /RELOC/BLD + run: cmake --build /RELOC/BLD -j2 + + - name: install in /RELOC/PFX + run: cmake --build /RELOC/BLD -t install + + - name: check installed package doesn't contain references to RELOC + run: grep -r RELOC /RELOC/PFX | grep -v Binary | tee references + + - name: exit accordingly + run: exit $(wc -l references | cut -d " " -f 1) diff --git a/CMakeLists.txt b/CMakeLists.txt index 47fe3dd5afcd303eb7877dd7ecb236f5452f60c5..f437ee6e9f5589eab36f29704ab0a2abb15d2a18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -240,12 +240,12 @@ target_link_boost_python(${PROJECT_NAME} PUBLIC) install( TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} INCLUDES - DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) add_header_group(${PROJECT_NAME}_HEADERS) add_source_group(${PROJECT_NAME}_SOURCES)