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()
set(LIBRARIES_TO_CHECK
Boost GMP MPFR
VTK
Qt6
Boost GMP MPFR VTK Qt6
Eigen3 OpenGR libpointmatcher LEDA MPFI
NTL TBB OpenCV METIS ZLIB
Ceres GLPK SCIP OSQP
@ -498,7 +496,57 @@ function(check_library cgal_3rdparty_lib)
if(${cgal_3rdparty_lib} STREQUAL "Eigen3")
set(version_var ${EIGEN3_VERSION})
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})
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")
set(header_name "")
set(version_macros "")