Update GMP and GLPK version checks in CMakeLists.txt

This commit is contained in:
Nicolas Saillant 2024-07-16 16:00:46 +02:00
parent e3fd9ed25f
commit 00cc6ce694
1 changed files with 52 additions and 4 deletions

View File

@ -480,9 +480,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
endif() endif()
set(LIBRARIES_TO_CHECK set(LIBRARIES_TO_CHECK
Boost GMP MPFR Boost GMP MPFR VTK Qt6
VTK
Qt6
Eigen3 OpenGR libpointmatcher LEDA MPFI Eigen3 OpenGR libpointmatcher LEDA MPFI
NTL TBB OpenCV METIS ZLIB NTL TBB OpenCV METIS ZLIB
Ceres GLPK SCIP OSQP Ceres GLPK SCIP OSQP
@ -498,7 +496,57 @@ function(check_library cgal_3rdparty_lib)
if(${cgal_3rdparty_lib} STREQUAL "Eigen3") if(${cgal_3rdparty_lib} STREQUAL "Eigen3")
set(version_var ${EIGEN3_VERSION}) set(version_var ${EIGEN3_VERSION})
elseif(${cgal_3rdparty_lib} STREQUAL "GMP") elseif(${cgal_3rdparty_lib} STREQUAL "GMP")
set(GMP_HEADER_PATH "${GMP_INCLUDE_DIR}/gmp.h")
file(READ "${GMP_HEADER_PATH}" GMP_HEADER_CONTENT)
string(REGEX MATCHALL "#include[ \t]+\"([^\"]+)\"" INCLUDED_HEADERS "${GMP_HEADER_CONTENT}")
set(GMP_VERSION_MAJOR "")
set(GMP_VERSION_MINOR "")
set(GMP_VERSION_PATCH "")
foreach(INCLUDED_HEADER ${INCLUDED_HEADERS})
string(REGEX REPLACE "#include[ \t]+\"([^\"]+)\"" "\\1" GMP_ARCH_HEADER "${INCLUDED_HEADER}")
set(GMP_ARCH_HEADER_PATH "${GMP_INCLUDE_DIR}/${GMP_ARCH_HEADER}")
if(EXISTS "${GMP_ARCH_HEADER_PATH}")
file(READ "${GMP_ARCH_HEADER_PATH}" GMP_ARCH_HEADER_CONTENT)
string(REGEX MATCH "#define[ \t]+__GNU_MP_VERSION[ \t]+[0-9]+" GMP_VERSION_MAJOR_LINE "${GMP_ARCH_HEADER_CONTENT}")
string(REGEX MATCH "#define[ \t]+__GNU_MP_VERSION_MINOR[ \t]+[0-9]+" GMP_VERSION_MINOR_LINE "${GMP_ARCH_HEADER_CONTENT}")
string(REGEX MATCH "#define[ \t]+__GNU_MP_VERSION_PATCHLEVEL[ \t]+[0-9]+" GMP_VERSION_PATCH_LINE "${GMP_ARCH_HEADER_CONTENT}")
if(GMP_VERSION_MAJOR_LINE)
string(REGEX REPLACE ".*[ \t]+([0-9]+).*" "\\1" GMP_VERSION_MAJOR "${GMP_VERSION_MAJOR_LINE}")
endif()
if(GMP_VERSION_MINOR_LINE)
string(REGEX REPLACE ".*[ \t]+([0-9]+).*" "\\1" GMP_VERSION_MINOR "${GMP_VERSION_MINOR_LINE}")
endif()
if(GMP_VERSION_PATCH_LINE)
string(REGEX REPLACE ".*[ \t]+([0-9]+).*" "\\1" GMP_VERSION_PATCH "${GMP_VERSION_PATCH_LINE}")
endif()
if(GMP_VERSION_MAJOR AND GMP_VERSION_MINOR AND GMP_VERSION_PATCH)
set(GMP_VERSION "${GMP_VERSION_MAJOR}.${GMP_VERSION_MINOR}.${GMP_VERSION_PATCH}")
break()
endif()
endif()
endforeach()
if(GMP_VERSION)
set(version_var ${GMP_VERSION}) set(version_var ${GMP_VERSION})
endif()
elseif(${cgal_3rdparty_lib} STREQUAL "GLPK")
set(GLPK_HEADER_PATH "${GLPK_INCLUDE_DIR}/glpk.h")
if(EXISTS "${GLPK_HEADER_PATH}")
file(READ "${GLPK_HEADER_PATH}" GLPK_HEADER_CONTENT)
string(REGEX MATCH "#define[ \t]+GLP_MAJOR_VERSION[ \t]+[0-9]+" GLPK_VERSION_MAJOR_LINE "${GLPK_HEADER_CONTENT}")
string(REGEX MATCH "#define[ \t]+GLP_MINOR_VERSION[ \t]+[0-9]+" GLPK_VERSION_MINOR_LINE "${GLPK_HEADER_CONTENT}")
set(GLPK_VERSION_MAJOR "")
set(GLPK_VERSION_MINOR "")
if(GLPK_VERSION_MAJOR_LINE)
string(REGEX REPLACE ".*[ \t]+([0-9]+).*" "\\1" GLPK_VERSION_MAJOR "${GLPK_VERSION_MAJOR_LINE}")
endif()
if(GLPK_VERSION_MINOR_LINE)
string(REGEX REPLACE ".*[ \t]+([0-9]+).*" "\\1" GLPK_VERSION_MINOR "${GLPK_VERSION_MINOR_LINE}")
endif()
if(NOT GLPK_VERSION_MAJOR STREQUAL "" AND NOT GLPK_VERSION_MINOR STREQUAL "")
set(GLPK_VERSION "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}")
set(version_var ${GLPK_VERSION})
endif()
endif()
elseif(${cgal_3rdparty_lib} STREQUAL "MPFR" OR ${cgal_3rdparty_lib} STREQUAL "METIS") elseif(${cgal_3rdparty_lib} STREQUAL "MPFR" OR ${cgal_3rdparty_lib} STREQUAL "METIS")
set(header_name "") set(header_name "")
set(version_macros "") set(version_macros "")