Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 3 additions & 22 deletions recipes/eigen/all/conandata.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,13 @@
sources:
"3.4.90-unstable+git.2025.08.15":
url: "https://gitlab.com/libeigen/eigen/-/archive/c487a4fe9eab5836330246b992fe7c17c06d6726/eigen-c487a4fe9eab5836330246b992fe7c17c06d6726.tar.bz2"
sha256: "4d55fafe1fed15437a7ffc02fb695728fce9d1ec6915b6d1fde2dd66644dfe0a"
"3.4.0":
url: "https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2"
sha256: "b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626"
"3.3.9":
url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.bz2"
sha256: "0fa5cafe78f66d2b501b43016858070d52ba47bd9b1016b0165a7b8e04675677"
"3.3.8":
url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.8/eigen-3.3.8.tar.bz2"
sha256: "0215c6593c4ee9f1f7f28238c4e8995584ebf3b556e9dbf933d84feb98d5b9ef"
"3.3.7":
url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2"
sha256: "685adf14bd8e9c015b78097c1dc22f2f01343756f196acdc76a678e1ae352e11"
patches:
"3.4.0":
- patch_file: "patches/3.4.0-0001-vec-reduce-half.patch"
patch_description: "Fix vectorized reductions compilation errors for Eigen::half"
patch_type: "bugfix"
patch_source: "https://gitlab.com/libeigen/eigen/-/commit/b0fe14213ec4c8615de485fe4c2bcd4bab0cbd19.patch"
"3.3.9":
- patch_file: "patches/0002-cmake-minimum-required.patch"
patch_description: "CMake: Move cmake_minimum_required() before project()"
patch_type: "conan"
"3.3.8":
- patch_file: "patches/0001-assert-exception-upstream-issue-2011.patch"
- patch_file: "patches/0002-cmake-minimum-required.patch"
patch_description: "CMake: Move cmake_minimum_required() before project()"
patch_type: "conan"
"3.3.7":
- patch_file: "patches/0002-cmake-minimum-required.patch"
patch_description: "CMake: Move cmake_minimum_required() before project()"
patch_type: "conan"
17 changes: 8 additions & 9 deletions recipes/eigen/all/conanfile.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from conan import ConanFile
from conan.tools.build import check_min_cppstd
from conan.tools.cmake import CMake, cmake_layout, CMakeToolchain
from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rmdir
from conan.tools.scm import Version
import os

required_conan_version = ">=1.52.0"
required_conan_version = ">=2"


class EigenConan(ConanFile):
Expand Down Expand Up @@ -36,9 +38,14 @@ def layout(self):
def package_id(self):
self.info.clear()

def validate(self):
if Version(self.version) >= "3.4.90-":
check_min_cppstd(self, 14)

def source(self):
get(self, **self.conan_data["sources"][self.version],
destination=self.source_folder, strip_root=True)
apply_conandata_patches(self)

def generate(self):
tc = CMakeToolchain(self)
Expand All @@ -47,7 +54,6 @@ def generate(self):
tc.generate()

def build(self):
apply_conandata_patches(self)
cmake = CMake(self)
cmake.configure()
cmake.build()
Expand All @@ -63,19 +69,12 @@ def package_info(self):
self.cpp_info.set_property("cmake_file_name", "Eigen3")
self.cpp_info.set_property("cmake_target_name", "Eigen3::Eigen")
self.cpp_info.set_property("pkg_config_name", "eigen3")
# TODO: back to global scope once cmake_find_package* generators removed
self.cpp_info.components["eigen3"].bindirs = []
self.cpp_info.components["eigen3"].libdirs = []
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.components["eigen3"].system_libs = ["m"]
if self.options.MPL2_only:
self.cpp_info.components["eigen3"].defines = ["EIGEN_MPL2_ONLY"]

# TODO: to remove in conan v2 once cmake_find_package* & pkg_config generators removed
self.cpp_info.names["cmake_find_package"] = "Eigen3"
self.cpp_info.names["cmake_find_package_multi"] = "Eigen3"
self.cpp_info.names["pkg_config"] = "eigen3"
self.cpp_info.components["eigen3"].names["cmake_find_package"] = "Eigen"
self.cpp_info.components["eigen3"].names["cmake_find_package_multi"] = "Eigen"
self.cpp_info.components["eigen3"].set_property("cmake_target_name", "Eigen3::Eigen")
self.cpp_info.components["eigen3"].includedirs = [os.path.join("include", "eigen3")]

This file was deleted.

10 changes: 0 additions & 10 deletions recipes/eigen/all/patches/0002-cmake-minimum-required.patch

This file was deleted.

9 changes: 8 additions & 1 deletion recipes/eigen/all/test_package/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)

find_package(Eigen3 REQUIRED CONFIG)

message(STATUS "Eigen3 version: ${Eigen3_VERSION}")
message(STATUS "Eigen3 major version: ${Eigen3_VERSION_MAJOR}")
message(STATUS "Eigen3 minor version: ${Eigen3_VERSION_MINOR}")
message(STATUS "Eigen3 patch version: ${Eigen3_VERSION_PATCH}")
message(STATUS "Eigen3 version string: ${Eigen3_VERSION_STRING}")


add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE Eigen3::Eigen)
8 changes: 2 additions & 6 deletions recipes/eigen/config.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
versions:
"3.4.0":
folder: all
"3.3.9":
"3.4.90-unstable+git.2025.08.15":
folder: all
"3.3.8":
folder: all
"3.3.7":
"3.4.0":
folder: all