diff -r a3b07219a091 -r 31615a2e0db1 cmake_modules/FindGHC.cmake --- a/cmake_modules/FindGHC.cmake Wed Mar 28 14:06:34 2018 +0200 +++ b/cmake_modules/FindGHC.cmake Wed Mar 28 15:14:20 2018 +0200 @@ -1,9 +1,10 @@ # - Try to find the Glasgow Haskell Compiler executable # Once done this will define # -# GHC_FOUND - system has GHC -# GHC_VERSION - GHC version -# GHC_EXECUTABLE - GHC executable +# GHC_VERSION - GHC version +# GHC_EXECUTABLE - GHC executable +# GHC_PKG_VERSION - ghc-pkg version +# GHC_PKG_EXECUTABLE - ghc-pkg executable # # Copyright (c) 2013, Vittorio Giovara # @@ -16,6 +17,11 @@ PATHS /opt/local/bin /usr/local/bin /usr/bin ) +find_program(GHC_PKG_EXECUTABLE + NAMES ghc-pkg + PATHS /opt/local/bin /usr/local/bin /usr/bin + ) + if (GHC_EXECUTABLE) # check ghc version execute_process(COMMAND ${GHC_EXECUTABLE} -V @@ -32,6 +38,22 @@ endif() endif() +if (GHC_PKG_EXECUTABLE) + # check ghc-pkg version + execute_process(COMMAND ${GHC_PKG_EXECUTABLE} -V + OUTPUT_VARIABLE GHC_PKG_VERSION_OUTPUT + ERROR_VARIABLE GHC_PKG_VERSION_ERROR + RESULT_VARIABLE GHC_PKG_VERSION_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if(${GHC_PKG_VERSION_RESULT} EQUAL 0) + string(REGEX MATCH "([0-9]+)" GHC_PKG_VERSION ${GHC_PKG_VERSION_OUTPUT}) + else() + message(SEND_ERROR "Command \"${GHC_PKG_EXECUTABLE} -V\" failed with output: ${GHC_PKG_VERSION_ERROR}") + endif() +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GHC DEFAULT_MSG GHC_EXECUTABLE GHC_VERSION) mark_as_advanced(GHC_VERSION)