author | Wuzzy <Wuzzy2@mail.ru> |
Mon, 16 Sep 2019 17:53:19 +0200 | |
changeset 15416 | 2cde69c1c680 |
parent 13296 | 31615a2e0db1 |
permissions | -rw-r--r-- |
# Checks if a given Haskell package exists (using ghc-pkg) # and fails if it's missing. # Loosely based on CheckLibraryExists.cmake from CMake. #============================================================================= # Copyright 2002-2009 Kitware, Inc. # # Distributed under the OSI-approved BSD License # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= macro(CHECK_HASKELL_PACKAGE_EXISTS PACKAGE MODULE FUNCTION PARAMCOUNT) # NOTE: MODULE, FUNCTION and PARAMCOUNT are curretly ignored. # TODO: Either implement these or drop? set(VARIABLE "HS_PACKAGE_${PACKAGE}") if(NOT (${VARIABLE} EQUAL "1")) message(STATUS "Looking for Haskell package ${PACKAGE} ...") execute_process(COMMAND ${GHC_PKG_EXECUTABLE} "latest" ${PACKAGE} "--simple-output" RESULT_VARIABLE COMMAND_RESULT ERROR_VARIABLE BUILD_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_QUIET ) if(${COMMAND_RESULT} EQUAL 0) message(STATUS "Looking for Haskell package ${PACKAGE} - found") set(${VARIABLE} "1" CACHE INTERNAL "Have package ${PACKAGE}") file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log "Determining if the Haskell package ${PACKAGE} exists has passed\n\n") else() message(STATUS "Looking for Haskell package ${PACKAGE} - not found") set(${VARIABLE} "0" CACHE INTERNAL "Have package ${PACKAGE}") file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "Determining if the Haskell package ${PACKAGE} " "exists failed with the following output:\n" "${BUILD_ERROR}\n\n") message(FATAL_ERROR "Haskell package '${PACKAGE}' required") endif() endif() endmacro()