From 5df85436d574a843ea4c3f7107149d5b494b94a1 Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Mon, 12 Jul 2021 17:08:49 +1000 Subject: [PATCH] Squashed 'software/mza/' changes from 9c048083d6..bf2c1f31bc bf2c1f31bc Ensure CMake links Gecode libraries in the correct order 4c233da54d Install shared library git-subtree-dir: software/mza git-subtree-split: bf2c1f31bcc885dd6e838bffd46eac23f1d10274 --- cmake/targets/libminizinc_gecode.cmake | 11 +++++++++++ cmake/targets/libmza.cmake | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/cmake/targets/libminizinc_gecode.cmake b/cmake/targets/libminizinc_gecode.cmake index 6d2ec26..e92a33d 100644 --- a/cmake/targets/libminizinc_gecode.cmake +++ b/cmake/targets/libminizinc_gecode.cmake @@ -21,6 +21,17 @@ if(GECODE_FOUND AND USE_GECODE) target_include_directories(minizinc_gecode PRIVATE "${GECODE_INCLUDE_DIRS}") add_dependencies(minizinc_gecode minizinc_parser) + # Workaround to force CMake to link in the correct order + target_link_libraries(Gecode::Support INTERFACE ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(Gecode::Kernel INTERFACE Gecode::Support) + target_link_libraries(Gecode::Search INTERFACE Gecode::Kernel) + target_link_libraries(Gecode::Int INTERFACE Gecode::Kernel) + target_link_libraries(Gecode::Set INTERFACE Gecode::Int) + target_link_libraries(Gecode::Float INTERFACE Gecode::Int) + target_link_libraries(Gecode::Minimodel INTERFACE Gecode::Int Gecode::Set Gecode::Float Gecode::Search) + target_link_libraries(Gecode::Driver INTERFACE Gecode::Int) + target_link_libraries(Gecode::Flatzinc INTERFACE Gecode::Minimodel Gecode::Driver) + ### Setup correct compilation into the MiniZinc library target_compile_definitions(mzn PRIVATE HAS_GECODE) target_sources(mzn PRIVATE $) diff --git a/cmake/targets/libmza.cmake b/cmake/targets/libmza.cmake index 24be745..bd0dd27 100644 --- a/cmake/targets/libmza.cmake +++ b/cmake/targets/libmza.cmake @@ -3,6 +3,13 @@ if(GECODE_FOUND AND USE_GECODE) lib/c_interface.cpp include/minizinc/c_interface.h ) - target_link_libraries(mza mzn) + + install( + TARGETS mza + EXPORT libminizincTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif()