From 9292fbf52bd20f00837f4283dc35cd43cd086920 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 10:58:38 +0100 Subject: [PATCH 01/17] Upgrade eigen in 5.0.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b6cb0b2b..6d73e568 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,7 +79,7 @@ if(LIBCMAES_BUILD_PYTHON) endif() -find_package (Eigen3 3.4.0 REQUIRED) +find_package (Eigen3 5.0.0 REQUIRED) if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) From 293b028d861cf7d01fec0f3ac1a77aa0189b9090 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:07:54 +0100 Subject: [PATCH 02/17] Update conan file --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 9d12ffac..a67c8ee6 100644 --- a/conanfile.py +++ b/conanfile.py @@ -55,7 +55,7 @@ def build_requirements(self): self.test_requires("boost/1.85.0") def requirements(self): - self.requires("eigen/3.4.0", transitive_headers=True) + self.requires("eigen/5.0.0", transitive_headers=True) if self.options.openmp and self.settings.os != "Windows": self.requires("llvm-openmp/17.0.6", transitive_headers=True) From c2fb3279bff35080d273fdd6eb9a822198185c8b Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:12:07 +0100 Subject: [PATCH 03/17] Update Eigen --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 397bb461..d55157d3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,7 +56,7 @@ target_include_directories ( cmaes PUBLIC $ $ ) -target_link_libraries (cmaes PUBLIC Eigen3::Eigen) +target_link_libraries (cmaes PUBLIC Eigen::Eigen) if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) endif () From 9ca006d6f760f199570c77982bbfcdfeaf29194e Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:13:52 +0100 Subject: [PATCH 04/17] Solve Eigen package issue --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d73e568..9447b613 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,7 +79,7 @@ if(LIBCMAES_BUILD_PYTHON) endif() -find_package (Eigen3 5.0.0 REQUIRED) +find_package (Eigen 5.0.0 REQUIRED) if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) From 99f18c6b259922de595df5f3be74f80ea127e338 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:18:57 +0100 Subject: [PATCH 05/17] Remove find_package from CMakeLists.txt --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9447b613..4510bb52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,8 +79,6 @@ if(LIBCMAES_BUILD_PYTHON) endif() -find_package (Eigen 5.0.0 REQUIRED) - if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) if(NOT OpenMP_CXX_FOUND) From 8e8f569d7db5203e666c6f52c55640b41e0fa0df Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:24:37 +0100 Subject: [PATCH 06/17] Revert change find_package from CMakeLists.txt --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4510bb52..aa200706 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,8 @@ if(LIBCMAES_BUILD_PYTHON) endif () endif() +find_package( Eigen3 REQUIRED ) +include_directories( ${EIGEN3_INCLUDE_DIR} ) if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) From 09a82a6f90b5af124005aa4faf88ae3424d84594 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:26:30 +0100 Subject: [PATCH 07/17] Add cmake for eigen --- cmake/FindEigen3.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 2 +- 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 cmake/FindEigen3.cmake diff --git a/cmake/FindEigen3.cmake b/cmake/FindEigen3.cmake new file mode 100644 index 00000000..1daba248 --- /dev/null +++ b/cmake/FindEigen3.cmake @@ -0,0 +1,81 @@ +# - Try to find Eigen3 lib +# +# This module supports requiring a minimum version, e.g. you can do +# find_package(Eigen3 5.0.0) +# to require version 3.1.2 or newer of Eigen3. +# +# Once done this will define +# +# EIGEN3_FOUND - system has eigen lib with correct version +# EIGEN3_INCLUDE_DIR - the eigen include directory +# EIGEN3_VERSION - eigen version + +# Copyright (c) 2006, 2007 Montel Laurent, +# Copyright (c) 2008, 2009 Gael Guennebaud, +# Copyright (c) 2009 Benoit Jacob +# Redistribution and use is allowed according to the terms of the 2-clause BSD license. + +if(NOT Eigen3_FIND_VERSION) + if(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 5) + endif(NOT Eigen3_FIND_VERSION_MAJOR) + if(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 0) + endif(NOT Eigen3_FIND_VERSION_MINOR) + if(NOT Eigen3_FIND_VERSION_PATCH) + set(Eigen3_FIND_VERSION_PATCH 0) + endif(NOT Eigen3_FIND_VERSION_PATCH) + + set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") +endif(NOT Eigen3_FIND_VERSION) + +macro(_eigen3_check_version) + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") + set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + + set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK FALSE) + else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK TRUE) + endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + + if(NOT EIGEN3_VERSION_OK) + + message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") + endif(NOT EIGEN3_VERSION_OK) +endmacro(_eigen3_check_version) + +if (EIGEN3_INCLUDE_DIR) + + # in cache already + _eigen3_check_version() + set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) + +else (EIGEN3_INCLUDE_DIR) + + find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + PATHS + ${CMAKE_INSTALL_PREFIX}/include + ${KDE4_INCLUDE_DIR} + PATH_SUFFIXES eigen3 eigen + ) + + if(EIGEN3_INCLUDE_DIR) + _eigen3_check_version() + endif(EIGEN3_INCLUDE_DIR) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) + + mark_as_advanced(EIGEN3_INCLUDE_DIR) + +endif(EIGEN3_INCLUDE_DIR) + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d55157d3..397bb461 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,7 +56,7 @@ target_include_directories ( cmaes PUBLIC $ $ ) -target_link_libraries (cmaes PUBLIC Eigen::Eigen) +target_link_libraries (cmaes PUBLIC Eigen3::Eigen) if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) endif () From 08e24692c4ede5b1bc8a3037469d6485360bbd67 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:45:52 +0100 Subject: [PATCH 08/17] Test without eigen requirements in conanfile --- conanfile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index a67c8ee6..3df5d6fd 100644 --- a/conanfile.py +++ b/conanfile.py @@ -55,8 +55,6 @@ def build_requirements(self): self.test_requires("boost/1.85.0") def requirements(self): - self.requires("eigen/5.0.0", transitive_headers=True) - if self.options.openmp and self.settings.os != "Windows": self.requires("llvm-openmp/17.0.6", transitive_headers=True) From 57499f1261c7554b8ddd61fb942dbd302bdf3d1f Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:49:48 +0100 Subject: [PATCH 09/17] Try link eigen 5.0.0 --- CMakeLists.txt | 3 -- cmake/FindEigen3.cmake | 81 ------------------------------------------ conanfile.py | 1 + src/CMakeLists.txt | 6 +++- 4 files changed, 6 insertions(+), 85 deletions(-) delete mode 100644 cmake/FindEigen3.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index aa200706..e42c84be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,9 +78,6 @@ if(LIBCMAES_BUILD_PYTHON) endif () endif() -find_package( Eigen3 REQUIRED ) -include_directories( ${EIGEN3_INCLUDE_DIR} ) - if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) if(NOT OpenMP_CXX_FOUND) diff --git a/cmake/FindEigen3.cmake b/cmake/FindEigen3.cmake deleted file mode 100644 index 1daba248..00000000 --- a/cmake/FindEigen3.cmake +++ /dev/null @@ -1,81 +0,0 @@ -# - Try to find Eigen3 lib -# -# This module supports requiring a minimum version, e.g. you can do -# find_package(Eigen3 5.0.0) -# to require version 3.1.2 or newer of Eigen3. -# -# Once done this will define -# -# EIGEN3_FOUND - system has eigen lib with correct version -# EIGEN3_INCLUDE_DIR - the eigen include directory -# EIGEN3_VERSION - eigen version - -# Copyright (c) 2006, 2007 Montel Laurent, -# Copyright (c) 2008, 2009 Gael Guennebaud, -# Copyright (c) 2009 Benoit Jacob -# Redistribution and use is allowed according to the terms of the 2-clause BSD license. - -if(NOT Eigen3_FIND_VERSION) - if(NOT Eigen3_FIND_VERSION_MAJOR) - set(Eigen3_FIND_VERSION_MAJOR 5) - endif(NOT Eigen3_FIND_VERSION_MAJOR) - if(NOT Eigen3_FIND_VERSION_MINOR) - set(Eigen3_FIND_VERSION_MINOR 0) - endif(NOT Eigen3_FIND_VERSION_MINOR) - if(NOT Eigen3_FIND_VERSION_PATCH) - set(Eigen3_FIND_VERSION_PATCH 0) - endif(NOT Eigen3_FIND_VERSION_PATCH) - - set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") -endif(NOT Eigen3_FIND_VERSION) - -macro(_eigen3_check_version) - file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) - - string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") - set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") - set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") - set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") - - set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) - if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK FALSE) - else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK TRUE) - endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - - if(NOT EIGEN3_VERSION_OK) - - message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " - "but at least version ${Eigen3_FIND_VERSION} is required") - endif(NOT EIGEN3_VERSION_OK) -endmacro(_eigen3_check_version) - -if (EIGEN3_INCLUDE_DIR) - - # in cache already - _eigen3_check_version() - set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) - -else (EIGEN3_INCLUDE_DIR) - - find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library - PATHS - ${CMAKE_INSTALL_PREFIX}/include - ${KDE4_INCLUDE_DIR} - PATH_SUFFIXES eigen3 eigen - ) - - if(EIGEN3_INCLUDE_DIR) - _eigen3_check_version() - endif(EIGEN3_INCLUDE_DIR) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) - - mark_as_advanced(EIGEN3_INCLUDE_DIR) - -endif(EIGEN3_INCLUDE_DIR) - diff --git a/conanfile.py b/conanfile.py index 3df5d6fd..68737f8e 100644 --- a/conanfile.py +++ b/conanfile.py @@ -55,6 +55,7 @@ def build_requirements(self): self.test_requires("boost/1.85.0") def requirements(self): + self.requires("eigen/5.0.0") if self.options.openmp and self.settings.os != "Windows": self.requires("llvm-openmp/17.0.6", transitive_headers=True) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 397bb461..e3bb2ba9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,7 +56,11 @@ target_include_directories ( cmaes PUBLIC $ $ ) -target_link_libraries (cmaes PUBLIC Eigen3::Eigen) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(TARGETS) + +target_link_libraries(cmaes PUBLIC Eigen::Eigen) if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) endif () From a66591ea4f8ea8dc4c49faa08b53a6e4f04acbfa Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:51:14 +0100 Subject: [PATCH 10/17] Remove unknown command --- src/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e3bb2ba9..8ef99764 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,7 +58,6 @@ target_include_directories ( ) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) target_link_libraries(cmaes PUBLIC Eigen::Eigen) if (LIBCMAES_USE_OPENMP) From a62fabe1433c74a7386bfac6cd37a29f54221bd5 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:53:37 +0100 Subject: [PATCH 11/17] Add cmake generator --- conanfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conanfile.py b/conanfile.py index 68737f8e..823566bc 100644 --- a/conanfile.py +++ b/conanfile.py @@ -23,6 +23,8 @@ class CmaesConan(ConanFile): # Binary configuration settings = "os", "compiler", "build_type", "arch" + + generators = "cmake" options = { "shared": [True, False], "openmp": [True, False], From 80667afb6b208a5890bd0117f710d5dfcf76be4f Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 11:58:58 +0100 Subject: [PATCH 12/17] Conan issue --- src/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8ef99764..ce6fd160 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,8 +58,10 @@ target_include_directories ( ) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(TARGETS) target_link_libraries(cmaes PUBLIC Eigen::Eigen) + if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) endif () From b3dd0dbb7b0927f92b5953bcf1f1590488eaa0e5 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Tue, 3 Mar 2026 12:01:00 +0100 Subject: [PATCH 13/17] Test other config --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ce6fd160..144d856c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -60,7 +60,7 @@ target_include_directories ( include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup(TARGETS) -target_link_libraries(cmaes PUBLIC Eigen::Eigen) +target_link_libraries(cmaes PUBLIC CONAN_PKG::eigen) if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) From 56f5eb442c6e566c443d889a707f90fadc52174e Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Mon, 23 Mar 2026 13:36:19 +0100 Subject: [PATCH 14/17] Add build option for eigen 5 --- CMakeLists.txt | 6 ++++++ conanfile.py | 10 ++++++++-- src/CMakeLists.txt | 11 ++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e42c84be..b67de71f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,8 @@ option (LIBCMAES_BUILD_TESTS "build tests" OFF) option (LIBCMAES_BUILD_EXAMPLES "build examples" ${LIBCMAES_TOP_LEVEL}) option (LIBCMAES_USE_OPENMP "Use OpenMP for multithreading" ON) option (LIBCMAES_ENABLE_SURROG "support for surrogates" ON) +option (LIBCMAES_EIGEN_5 "Use Eigen v5" OFF) + # Offer the user the choice of overriding the installation directories set (INSTALL_LIB_DIR lib${LIB_SUFFIX} @@ -78,6 +80,10 @@ if(LIBCMAES_BUILD_PYTHON) endif () endif() +if (NOT LIBCMAES_EIGEN_5) + find_package (Eigen3 3.4.0 REQUIRED) +endif() + if (LIBCMAES_USE_OPENMP) find_package (OpenMP QUIET) if(NOT OpenMP_CXX_FOUND) diff --git a/conanfile.py b/conanfile.py index 823566bc..6089a88c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -23,13 +23,14 @@ class CmaesConan(ConanFile): # Binary configuration settings = "os", "compiler", "build_type", "arch" - + generators = "cmake" options = { "shared": [True, False], "openmp": [True, False], "surrog": [True, False], "enable_tests": [True, False], + "eigen_5": [True, False], } default_options = { "shared": True, @@ -37,6 +38,7 @@ class CmaesConan(ConanFile): "surrog": True, "enable_tests": False, "boost/*:without_python": False, + "eigen_5": False, } # Sources are located in the same place as this recipe, copy them to the recipe @@ -57,7 +59,10 @@ def build_requirements(self): self.test_requires("boost/1.85.0") def requirements(self): - self.requires("eigen/5.0.0") + if self.options.eigen_5: + self.requires("eigen/5.0.0") + else: + self.requires("eigen/3.4.0", transitive_headers=True) if self.options.openmp and self.settings.os != "Windows": self.requires("llvm-openmp/17.0.6", transitive_headers=True) @@ -95,6 +100,7 @@ def generate(self): tc.variables["LIBCMAES_ENABLE_SURROG"] = self.options.surrog tc.variables["LIBCMAES_BUILD_PYTHON"] = self.options.enable_tests tc.variables["LIBCMAES_BUILD_TESTS"] = self.options.enable_tests + tc.variables["LIBCMAES_EIGEN_5"] = self.options.eigen_5 tc.generate() def build(self): diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 144d856c..5f3ef987 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,10 +57,15 @@ target_include_directories ( $ ) -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) -target_link_libraries(cmaes PUBLIC CONAN_PKG::eigen) +if (LIBCMAES_EIGEN_5) + include (${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + conan_basic_setup(TARGETS) + + target_link_libraries (cmaes PUBLIC CONAN_PKG::eigen) +else () + target_link_libraries (cmaes PUBLIC Eigen3::Eigen) +endif () if (LIBCMAES_USE_OPENMP) target_link_libraries (cmaes PUBLIC OpenMP::OpenMP_CXX) From 11833daebe20268103d583a622445476cd42cb42 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Mon, 23 Mar 2026 13:41:21 +0100 Subject: [PATCH 15/17] Remove empty lines --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b67de71f..b7d0e2a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,6 @@ option (LIBCMAES_USE_OPENMP "Use OpenMP for multithreading" ON) option (LIBCMAES_ENABLE_SURROG "support for surrogates" ON) option (LIBCMAES_EIGEN_5 "Use Eigen v5" OFF) - # Offer the user the choice of overriding the installation directories set (INSTALL_LIB_DIR lib${LIB_SUFFIX} CACHE PATH "Installation directory for libraries") From 562fe80c7f7c7d704dbcfa9d27fc63282d90e068 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Mon, 23 Mar 2026 13:42:04 +0100 Subject: [PATCH 16/17] Remove empty lines --- src/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5f3ef987..f97e1ab7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,7 +57,6 @@ target_include_directories ( $ ) - if (LIBCMAES_EIGEN_5) include (${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup(TARGETS) From f0a8d22987c62fdce59cfc6b5904252ca75f9c44 Mon Sep 17 00:00:00 2001 From: mcdesseroit Date: Wed, 25 Mar 2026 17:11:37 +0100 Subject: [PATCH 17/17] Change version to 0.10.3 + Update CI --- CMakeLists.txt | 2 +- appveyor.yml | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7d0e2a7..76f33d62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required (VERSION 3.15) -set(libcmaes_VERSION 0.10.2) +set(libcmaes_VERSION 0.10.3) project (libcmaes VERSION ${libcmaes_VERSION} diff --git a/appveyor.yml b/appveyor.yml index 0fdd1cf8..f43c59be 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,14 +2,34 @@ clone_folder: C:\projects\libcmaes environment: matrix: - CMAKE_PLATFORM: "Visual Studio 14 2015" + EIGEN_VERSION: "3.3.4" + EIGEN_URL: "https://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz" + EIGEN_ZIP: "3.3.4.tar.gz" + LIBCMAES_EIGEN_5: OFF + - CMAKE_PLATFORM: "Visual Studio 14 2015" + EIGEN_VERSION: "5.0.0" + EIGEN_URL: "https://gitlab.com/libeigen/eigen/-/archive/5.0.0/eigen-5.0.0.tar.gz" + EIGEN_ZIP: "eigen-5.0.0.tar.gz" + LIBCMAES_EIGEN_5: ON + - CMAKE_PLATFORM: "Visual Studio 14 2015 Win64" + EIGEN_VERSION: "3.3.4" + EIGEN_URL: "https://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz" + EIGEN_ZIP: "3.3.4.tar.gz" + LIBCMAES_EIGEN_5: OFF - CMAKE_PLATFORM: "Visual Studio 14 2015 Win64" + EIGEN_VERSION: "5.0.0" + EIGEN_URL: "https://gitlab.com/libeigen/eigen/-/archive/5.0.0/eigen-5.0.0.tar.gz" + EIGEN_ZIP: "eigen-5.0.0.tar.gz" + LIBCMAES_EIGEN_5: ON install: - cinstall: python - - appveyor-retry appveyor DownloadFile https://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz - - 7z x 3.3.4.tar.gz -oc:\projects > nul - - 7z x c:\projects\3.3.4.tar -oc:\projects > nul - - cd c:\projects\eigen-eigen-5a0156e40feb + - appveyor-retry appveyor DownloadFile "%EIGEN_URL%" -FileName eigen.tar.gz + - 7z x eigen.tar.gz -oc:\projects > nul + - 7z x c:\projects\eigen.tar -oc:\projects > nul + - cd c:\projects + - for /d %%i in (eigen-*) do set EIGEN_DIR=%%i + - cd %EIGEN_DIR% - mkdir build && cd build - cmake -G "%CMAKE_PLATFORM%" -DCMAKE_INSTALL_PREFIX=c:\Libraries\eigen -DCMAKE_BUILD_TYPE=Release .. - cmake --build . --config Release --target install @@ -17,6 +37,6 @@ install: build_script: - cd c:\projects\libcmaes - mkdir build && cd build - - cmake -G "%CMAKE_PLATFORM%" -DCMAKE_INSTALL_PREFIX=c:\Libraries\libcmaes -DEigen3_DIR=c:\Libraries\eigen\share\eigen3\cmake -DBOOST_ROOT="C:/Libraries/boost_1_63_0" .. + - cmake -G "%CMAKE_PLATFORM%" -DCMAKE_INSTALL_PREFIX=c:\Libraries\libcmaes -DLIBCMAES_EIGEN_5=%LIBCMAES_EIGEN_5% -DEigen3_DIR=c:\Libraries\eigen\share\eigen3\cmake -DBOOST_ROOT="C:/Libraries/boost_1_63_0" .. - cmake --build . --config Release --target install - ctest -C Release