1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.

92 lines
2.8 KiB
CMake

### Export of a CMake configuration for MiniZinc
## This allows for "find_package(minizinc)"
if(WIN32 AND NOT CYGWIN)
set(DEF_INSTALL_CMAKE_DIR CMake)
else()
set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake)
endif()
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR}/libminizinc CACHE PATH "Installation directory for CMake files")
if(NOT IS_ABSOLUTE "${INSTALL_CMAKE_DIR}")
set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}")
endif()
file(RELATIVE_PATH REL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}"
"${INSTALL_CMAKE_DIR}")
file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}"
"${CMAKE_INSTALL_PREFIX}/include")
# Add external (static) dependencies
if(TARGET minizinc_geas)
install(
FILES cmake/modules/FindGeas.cmake
DESTINATION ${REL_CMAKE_DIR}
COMPONENT dev
)
set(CONF_DEPENDENCIES "${CONF_DEPENDENCIES}find_dependency(Geas)\n")
endif()
if(TARGET minizinc_gecode)
install(
FILES cmake/modules/FindGecode.cmake cmake/modules/FindMPFR.cmake
DESTINATION ${REL_CMAKE_DIR}
COMPONENT dev
)
if(GECODE_HAS_GIST)
set(_CONF_GIST " Gist")
endif()
set(CONF_DEPENDENCIES "${CONF_DEPENDENCIES}find_dependency(Gecode 6.0 COMPONENTS Driver Float Int Kernel Minimodel Search Set Support${_CONF_GIST})\n")
endif()
if(TARGET minizinc_osicbc)
install(
FILES cmake/modules/FindOsiCBC.cmake
DESTINATION ${REL_CMAKE_DIR}
COMPONENT dev
)
set(CONF_DEPENDENCIES "${CONF_DEPENDENCIES}find_dependency(OsiCBC)\n")
endif()
# Add all targets to the build-tree export set
export(TARGETS mzn
FILE "${PROJECT_BINARY_DIR}/libminizincTargets.cmake")
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
export(PACKAGE libminizinc)
# Create the libminizincConfig.cmake and libminizincConfigVersion files
# ... for the build tree
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
configure_file(
cmake/templates/libminizincConfig.cmake.in
"${PROJECT_BINARY_DIR}/libminizincConfig.cmake"
@ONLY
)
# ... for the install tree
set(CONF_INCLUDE_DIRS "\${libminizinc_CMAKE_DIR}/${REL_INCLUDE_DIR}")
configure_file(
cmake/templates/libminizincConfig.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libminizincConfig.cmake"
@ONLY
)
# ... for both
configure_file(
cmake/templates/libminizincConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/libminizincConfigVersion.cmake"
@ONLY
)
# Install the libminizincConfig.cmake and libminizincConfigVersion.cmake
install(
FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/libminizincConfig.cmake" "${PROJECT_BINARY_DIR}/libminizincConfigVersion.cmake"
DESTINATION ${REL_CMAKE_DIR}
COMPONENT dev
)
# Install the export set for use with the install-tree
install(
EXPORT libminizincTargets
DESTINATION ${REL_CMAKE_DIR}
COMPONENT dev
)