Browse Source

Added A FindGurobi file for CMake.

Adapted build process to use the new file to support all version of the library (upgrading to 6.0 breaks everything).


Former-commit-id: 820ad02968
tempestpy_adaptions
PBerger 10 years ago
parent
commit
f7adf54be3
  1. 16
      CMakeLists.txt
  2. 66
      resources/cmake/FindGurobi.cmake

16
CMakeLists.txt

@ -57,6 +57,7 @@ set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_mer
find_package(Boost REQUIRED)
find_package(Doxygen REQUIRED)
find_package(Gurobi)
find_package(TBB)
find_package(Threads REQUIRED)
find_package(GMP)
@ -69,7 +70,7 @@ else()
endif()
message(STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version.")
if ("${GUROBI_ROOT}" STREQUAL "")
if ("${GUROBI_ROOT}" STREQUAL "" AND NOT GUROBI_FOUND)
set(ENABLE_GUROBI OFF)
else()
set(ENABLE_GUROBI ON)
@ -330,7 +331,10 @@ endif(ADDITIONAL_LINK_DIRS)
##
#############################################################
if (ENABLE_GUROBI)
link_directories("${GUROBI_ROOT}/lib")
if (NOT GUROBI_FOUND)
message(FATAL_ERROR "Gurobi was requested, but not found!")
endif()
#link_directories("${GUROBI_ROOT}/lib")
endif()
if (ENABLE_Z3)
link_directories("${Z3_ROOT}/bin")
@ -413,10 +417,10 @@ target_link_libraries(storm ltl2dstar)
#############################################################
if (ENABLE_GUROBI)
message (STATUS "StoRM - Linking with Gurobi")
include_directories("${GUROBI_ROOT}/include")
target_link_libraries(storm "gurobi56")
target_link_libraries(storm-functional-tests "gurobi56")
target_link_libraries(storm-performance-tests "gurobi56")
include_directories(GUROBI_INCLUDE_DIRS)
target_link_libraries(storm GUROBI_LIBRARY)
target_link_libraries(storm-functional-tests GUROBI_LIBRARY)
target_link_libraries(storm-performance-tests GUROBI_LIBRARY)
endif(ENABLE_GUROBI)
#############################################################

66
resources/cmake/FindGurobi.cmake

@ -0,0 +1,66 @@
#### Taken from http://www.openflipper.org/svnrepo/CoMISo/trunk/CoMISo/cmake/FindGUROBI.cmake
# - Try to find GUROBI
# Once done this will define
# GUROBI_FOUND - System has Gurobi
# GUROBI_INCLUDE_DIRS - The Gurobi include directories
# GUROBI_LIBRARIES - The libraries needed to use Gurobi
if (GUROBI_INCLUDE_DIR)
# in cache already
set(GUROBI_FOUND TRUE)
set(GUROBI_INCLUDE_DIRS "${GUROBI_INCLUDE_DIR}" )
set(GUROBI_LIBRARIES "${GUROBI_LIBRARY};${GUROBI_CXX_LIBRARY}" )
else (GUROBI_INCLUDE_DIR)
find_path(GUROBI_INCLUDE_DIR
NAMES gurobi_c++.h
PATHS "$ENV{GUROBI_HOME}/include"
"/Library/gurobi502/mac64/include"
"C:\\libs\\gurobi502\\include"
"C:\\gurobi600\\win64\\include"
"${GUROBI_ROOT}/include"
)
find_library( GUROBI_LIBRARY
NAMES gurobi
gurobi45
gurobi46
gurobi50
gurobi51
gurobi52
gurobi55
gurobi56
gurobi60
PATHS "$ENV{GUROBI_HOME}/lib"
"/Library/gurobi502/mac64/lib"
"C:\\libs\\gurobi502\\lib"
"C:\\gurobi600\\win64\\lib"
"${GUROBI_ROOT}/lib"
)
find_library( GUROBI_CXX_LIBRARY
NAMES gurobi_c++
PATHS "$ENV{GUROBI_HOME}/lib"
"/Library/gurobi502/mac64/lib"
"C:\\libs\\gurobi502\\lib"
"C:\\gurobi600\\win64\\lib"
"${GUROBI_ROOT}/lib"
)
set(GUROBI_INCLUDE_DIRS "${GUROBI_INCLUDE_DIR}" )
set(GUROBI_LIBRARIES "${GUROBI_LIBRARY};${GUROBI_CXX_LIBRARY}" )
# use c++ headers as default
# set(GUROBI_COMPILER_FLAGS "-DIL_STD" CACHE STRING "Gurobi Compiler Flags")
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBCPLEX_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(GUROBI DEFAULT_MSG
GUROBI_LIBRARY GUROBI_CXX_LIBRARY GUROBI_INCLUDE_DIR)
mark_as_advanced(GUROBI_INCLUDE_DIR GUROBI_LIBRARY GUROBI_CXX_LIBRARY)
endif(GUROBI_INCLUDE_DIR)
Loading…
Cancel
Save