Skip to content

Commit 0eb3887

Browse files
Merge pull request #170 from astomodynamics/copilot/fix-github-actions-wheel-build
Fix manylinux wheel build: expose fetched Eigen3 package to autodiff
2 parents 0d7ab73 + aeb73ca commit 0eb3887

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

CMakeLists.txt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,29 @@ else()
6262
endif()
6363

6464
# Find packages
65-
find_package(Eigen3 QUIET)
65+
find_package(Eigen3 3.4 QUIET NO_MODULE)
6666

67-
# If Eigen3 is not found, download it
67+
# If Eigen3 is not found, fetch it and expose a proper Eigen3::Eigen target
6868
if(NOT Eigen3_FOUND)
6969
message(STATUS "Eigen3 not found. Downloading...")
7070
FetchContent_Declare(
7171
eigen
7272
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
73-
GIT_TAG 3.4.0 # Use a stable version
73+
GIT_TAG 3.4.0
7474
)
7575
FetchContent_MakeAvailable(eigen)
76-
set(EIGEN3_INCLUDE_DIRS ${eigen_SOURCE_DIR})
76+
77+
# Point Eigen3_DIR to the build directory where Eigen3Config.cmake is generated
78+
# so that downstream find_package(Eigen3) calls (e.g., from autodiff) can find it
79+
set(Eigen3_DIR "${eigen_BINARY_DIR}" CACHE PATH "Path to Eigen3Config.cmake" FORCE)
80+
81+
# Ensure Eigen3::Eigen target exists for direct usage
82+
if(NOT TARGET Eigen3::Eigen)
83+
add_library(Eigen3::Eigen INTERFACE IMPORTED)
84+
set_target_properties(Eigen3::Eigen PROPERTIES
85+
INTERFACE_INCLUDE_DIRECTORIES "${eigen_SOURCE_DIR}"
86+
)
87+
endif()
7788
endif()
7889

7990
if (CDDP_CPP_CASADI)
@@ -173,14 +184,10 @@ set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
173184

174185
target_link_libraries(${PROJECT_NAME}
175186
PUBLIC
176-
$<IF:$<BOOL:${Eigen3_FOUND}>,Eigen3::Eigen,>
187+
Eigen3::Eigen
177188
autodiff
178189
)
179190

180-
if(NOT Eigen3_FOUND)
181-
target_include_directories(${PROJECT_NAME} PUBLIC ${EIGEN3_INCLUDE_DIRS})
182-
endif()
183-
184191
target_include_directories(${PROJECT_NAME} PUBLIC
185192
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/cddp-cpp>
186193
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>

0 commit comments

Comments
 (0)