this repo has no description
1### MiniZinc Gecode Solver Target
2
3if(GECODE_FOUND AND USE_GECODE)
4
5 ### Compile target for the Gecode interface
6 add_library(minizinc_gecode OBJECT
7 lib/passes/gecode_pass.cpp
8
9 solvers/gecode/aux_brancher.hh
10 solvers/gecode/fzn_space.cpp
11 solvers/gecode/gecode_constraints.cpp
12 solvers/gecode/gecode_solverfactory.cpp
13 solvers/gecode/gecode_solverinstance.cpp
14
15 include/minizinc/passes/gecode_pass.hh
16 include/minizinc/solvers/gecode/fzn_space.hh
17 include/minizinc/solvers/gecode/gecode_constraints.hh
18 include/minizinc/solvers/gecode_solverfactory.hh
19 include/minizinc/solvers/gecode_solverinstance.hh
20 )
21 target_include_directories(minizinc_gecode PRIVATE "${GECODE_INCLUDE_DIRS}")
22 add_dependencies(minizinc_gecode minizinc_parser)
23
24 # Workaround to force CMake to link in the correct order
25 target_link_libraries(Gecode::Support INTERFACE ${CMAKE_THREAD_LIBS_INIT})
26 target_link_libraries(Gecode::Kernel INTERFACE Gecode::Support)
27 target_link_libraries(Gecode::Search INTERFACE Gecode::Kernel)
28 target_link_libraries(Gecode::Int INTERFACE Gecode::Kernel)
29 target_link_libraries(Gecode::Set INTERFACE Gecode::Int)
30 target_link_libraries(Gecode::Float INTERFACE Gecode::Int)
31 target_link_libraries(Gecode::Minimodel INTERFACE Gecode::Int Gecode::Set Gecode::Float Gecode::Search)
32 target_link_libraries(Gecode::Driver INTERFACE Gecode::Int)
33 target_link_libraries(Gecode::Flatzinc INTERFACE Gecode::Minimodel Gecode::Driver)
34
35 ### Setup correct compilation into the MiniZinc library
36 target_compile_definitions(mzn PRIVATE HAS_GECODE)
37 target_sources(mzn PRIVATE $<TARGET_OBJECTS:minizinc_gecode>)
38
39 target_link_libraries(mzn Gecode::Driver Gecode::Float Gecode::Int Gecode::Kernel Gecode::Search Gecode::Set)
40 if(WIN32 AND GECODE_HAS_GIST)
41 target_link_libraries(mzn Gecode::Gist)
42 endif()
43
44endif()