--- 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 <vittorio.giovara@gmail.com>
#
@@ -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)