this repo has no description
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)