this repo has no description
at develop 3.8 kB view raw
1cmake_minimum_required(VERSION 3.4.0) 2set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") # Must be before project() 3 4# ------------------------------------------------------------------------------------------------------------------- 5# -- Project information and versioning. 6 7project(libminizinc 8 VERSION 2.5.4 9 LANGUAGES CXX C) 10 11if(NOT BUILD_REF) 12 set(BUILD_REF "") 13endif() 14 15# ------------------------------------------------------------------------------------------------------------------- 16# -- Project build options 17 18# Static vs. Dynamic linking 19option(CPlex_PLUGIN "Build CPLEX binding as a plugin" ON) 20option(Gurobi_PLUGIN "Build Gurobi binding as a plugin" ON) 21 22# Enforce non proprietary build 23option(USE_PROPRIETARY "Enable static linking of proprietary solvers" OFF) 24if(NOT USE_PROPRIETARY) 25 set(CPLEX_PLUGIN ON) 26 set(GUROBI_PLUGIN ON) 27endif() 28 29# CMake options default value 30option(CMAKE_POSITION_INDEPENDENT_CODE "Default value for POSITION_INDEPENDENT_CODE of targets" TRUE) 31 32# ------------------------------------------------------------------------------------------------------------------- 33# -- CMake initialisation 34 35include(GNUInstallDirs) 36 37# Fix library suffixes for Web Assembly platform 38include(cmake/support/emscripten_setup.cmake) 39 40# Try to find possible dependencies 41list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) 42if(POLICY CMP0074) 43 cmake_policy(SET CMP0074 NEW) 44endif(POLICY CMP0074) 45find_package(CPlex) 46find_package(Geas) 47find_package(Gecode 6.0 COMPONENTS Driver Float Int Kernel Minimodel Search Set Support) 48find_package(Gurobi) 49find_package(OsiCBC) 50find_package(SCIP) 51find_package(Xpress) 52 53# Set build type when none is selected 54set(DEFAULT_BUILD_TYPE "Release") 55if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) 56 message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.") 57 set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build." FORCE) 58 # Set the possible values of build type for cmake-gui 59 set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS 60 "Debug" 61 "Release" 62 "MinSizeRel" 63 "RelWithDebInfo") 64endif() 65 66# ------------------------------------------------------------------------------------------------------------------- 67# -- Compiler configuration 68 69include(cmake/support/ccache_setup.cmake) 70include(cmake/support/compiler_setup.cmake) 71 72configure_file( 73 ${PROJECT_SOURCE_DIR}/include/minizinc/config.hh.in 74 ${PROJECT_BINARY_DIR}/include/minizinc/config.hh 75) 76 77install( 78 FILES ${PROJECT_BINARY_DIR}/include/minizinc/config.hh 79 DESTINATION include/minizinc 80) 81 82# ------------------------------------------------------------------------------------------------------------------- 83# -- MiniZinc compilation targets. 84 85find_package(Threads REQUIRED) 86include_directories(${PROJECT_SOURCE_DIR}/include) 87include_directories(${PROJECT_BINARY_DIR}/include) 88 89# Libraries 90include(cmake/targets/libmzn.cmake) 91 92# Executables 93include(cmake/targets/minizinc.cmake) 94include(cmake/targets/mzn2doc.cmake) 95 96# ------------------------------------------------------------------------------------------------------------------- 97# -- Platform Specific configuration 98include(cmake/support/config_emscripten.cmake) 99 100# ------------------------------------------------------------------------------------------------------------------- 101# -- CMake configuration generation 102 103include(cmake/support/config_export.cmake) 104include(cmake/support/config_output.cmake) 105 106# ------------------------------------------------------------------------------------------------------------------- 107# -- Support Actions 108include(cmake/support/format.cmake)