cmake: Fix GLPK support (Fix #3312)

* Eigen was spuriously enabling fortran
* Missing GLKP helpers functions
This commit is contained in:
Mizux Seiha
2022-06-09 10:47:48 +02:00
parent 7374141757
commit b0a78201dd
3 changed files with 34 additions and 1 deletions

View File

@@ -30,6 +30,7 @@ if(USE_COINOR)
endif()
if(USE_GLPK)
list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_GLPK")
set(GLPK_DIR glpk)
endif()
if(USE_PDLP)
list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_PDLP")
@@ -227,6 +228,7 @@ foreach(SUBPROJECT IN ITEMS
base
bop
constraint_solver
${GLPK_DIR}
${PDLP_DIR}
${GSCIP_DIR}
glop

View File

@@ -39,6 +39,7 @@ set(FETCHCONTENT_UPDATES_DISCONNECTED ON)
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(BUILD_TESTING OFF)
set(CMAKE_Fortran_COMPILER OFF)
# ##############################################################################
# ZLIB
@@ -132,7 +133,6 @@ if(BUILD_Eigen3)
set(EIGEN_BUILD_PKGCONFIG OFF)
set(EIGEN_BUILD_DOC OFF)
set(EIGEN_BUILD_TESTING OFF)
set(EIGEN_BUILD_DOC OFF)
FetchContent_Declare(
eigen3
GIT_REPOSITORY "https://gitlab.com/libeigen/eigen.git"

View File

@@ -0,0 +1,31 @@
if(NOT USE_GLPK)
return()
endif()
file(GLOB _SRCS "*.h" "*.cc")
set(NAME ${PROJECT_NAME}_glpk)
if(MSVC)
set(STANDARD 20)
else()
set(STANDARD 17)
endif()
# Will be merge in libortools.so
#add_library(${NAME} STATIC ${_SRCS})
add_library(${NAME} OBJECT ${_SRCS})
set_target_properties(${NAME} PROPERTIES
CXX_STANDARD ${STANDARD}
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
POSITION_INDEPENDENT_CODE ON
)
target_include_directories(${NAME} PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>)
target_link_libraries(${NAME} PRIVATE
absl::strings
absl::str_format
$<$<BOOL:${USE_GLPK}>:GLPK::GLPK>)
#add_library(${PROJECT_NAME}::glpk ALIAS ${NAME})