Skip to content

Commit 277d523

Browse files
Fix Docker configure failure from exported Matplot link
This keeps matplot and CDDP_HAS_MATPLOT available to in-tree builds while removing them from the installed cddp target interface, which avoids the cddpTargets export error. It also cleans the Docker build step to use explicit CMake and CTest commands and removes the unused Python executable flag.
1 parent c91e518 commit 277d523

2 files changed

Lines changed: 16 additions & 18 deletions

File tree

CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,14 @@ add_library(${PROJECT_NAME}
185185
set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
186186

187187
target_link_libraries(${PROJECT_NAME}
188-
$<IF:$<BOOL:${Eigen3_FOUND}>,Eigen3::Eigen,>
189-
autodiff
188+
PUBLIC
189+
$<IF:$<BOOL:${Eigen3_FOUND}>,Eigen3::Eigen,>
190+
autodiff
190191
)
191192

192193
if(CDDP_CPP_ENABLE_PLOTTING)
193-
target_link_libraries(${PROJECT_NAME} matplot)
194-
target_compile_definitions(${PROJECT_NAME} PUBLIC CDDP_HAS_MATPLOT)
194+
target_link_libraries(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:matplot>)
195+
target_compile_definitions(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:CDDP_HAS_MATPLOT>)
195196
endif()
196197

197198
if(NOT Eigen3_FOUND)
@@ -205,7 +206,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC
205206

206207
if (CDDP_CPP_CASADI)
207208
target_include_directories(${PROJECT_NAME} PUBLIC ${CASADI_INCLUDE_DIR})
208-
target_link_libraries(${PROJECT_NAME} ${CASADI_LIBRARIES})
209+
target_link_libraries(${PROJECT_NAME} PRIVATE ${CASADI_LIBRARIES})
209210
endif()
210211

211212
# ACADOS
@@ -252,7 +253,7 @@ if (CDDP_CPP_ACADOS)
252253
include_directories(${BLASFEO_INCLUDE_DIR})
253254
include_directories(${HPIPM_INCLUDE_DIR})
254255
link_directories(${ACADOS_LIB_DIR})
255-
target_link_libraries(${PROJECT_NAME} ${ACADOS_LIBRARIES})
256+
target_link_libraries(${PROJECT_NAME} PRIVATE ${ACADOS_LIBRARIES})
256257

257258
# Add preprocessor definition to enable ACADOS in code
258259
target_compile_definitions(${PROJECT_NAME} PRIVATE CDDP_CPP_ACADOS_ENABLED=1)

Dockerfile

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,12 @@ WORKDIR /app
3131
COPY . /app
3232

3333

34-
# # Configure and build your project
35-
RUN rm -rf build && \
36-
mkdir build && \
37-
cd build && \
38-
cmake \
39-
-DCMAKE_BUILD_TYPE=Release \
40-
-DCDDP_CPP_BUILD_TESTS=ON \
41-
-DCDDP_CPP_CASADI=OFF \
42-
-DPython_EXECUTABLE=/usr/bin/python3 \
43-
.. && \
44-
make -j$(nproc) && \
45-
make test
34+
# Configure and build the project
35+
RUN rm -rf build && \
36+
cmake -S . -B build \
37+
-DCMAKE_BUILD_TYPE=Release \
38+
-DCDDP_CPP_BUILD_TESTS=ON \
39+
-DCDDP_CPP_BUILD_EXAMPLES=ON \
40+
-DCDDP_CPP_CASADI=OFF && \
41+
cmake --build build -j$(nproc) && \
42+
ctest --test-dir build --output-on-failure

0 commit comments

Comments
 (0)