{-# LANGUAGE CPP #-} -- | -- Module: : Data.Array.Accelerate.Examples.Internal.Interactive -- Copyright : [2014] Trevor L. McDonell -- License : BSD3 -- -- Maintainer : Trevor L. McDonell -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- This module exposes some internal infrastructure that is useful and common to -- the accelerate-examples test and benchmark program suite. This is not -- intended for general consumption. -- module Data.Array.Accelerate.Examples.Internal.Interactive ( -- * Interactive/GUI runInteractive, ) where import Data.Array.Accelerate.Examples.Internal.ParseArgs #ifdef ACCELERATE_ENABLE_GUI import Data.Label import Control.Monad import System.Environment #endif -- | If accelerate-examples is configured to enable GUI programs, and we are -- not in benchmarking mode, then execute the given action. -- runInteractive :: Options -> [String] -> IO () -> IO () #ifndef ACCELERATE_ENABLE_GUI runInteractive _ _ _ = return () #else runInteractive opt argv gui = unless (get optBenchmark opt) $ withArgs argv gui #endif