diff options
Diffstat (limited to 'CabalHelper')
-rw-r--r-- | CabalHelper/Compiletime/Compile.hs | 2 | ||||
-rw-r--r-- | CabalHelper/Compiletime/Data.hs | 2 | ||||
-rw-r--r-- | CabalHelper/Compiletime/Log.hs | 2 | ||||
-rw-r--r-- | CabalHelper/Compiletime/Types.hs | 32 | ||||
-rw-r--r-- | CabalHelper/Compiletime/Wrapper.hs | 3 | ||||
-rw-r--r-- | CabalHelper/Runtime/Main.hs | 2 | ||||
-rw-r--r-- | CabalHelper/Shared/InterfaceTypes.hs (renamed from CabalHelper/Shared/Types.hs) | 55 |
7 files changed, 67 insertions, 31 deletions
diff --git a/CabalHelper/Compiletime/Compile.hs b/CabalHelper/Compiletime/Compile.hs index 1c28903..dfa52a0 100644 --- a/CabalHelper/Compiletime/Compile.hs +++ b/CabalHelper/Compiletime/Compile.hs @@ -43,9 +43,9 @@ import Distribution.Text (display) import Paths_cabal_helper (version) import CabalHelper.Compiletime.Data import CabalHelper.Compiletime.Log +import CabalHelper.Compiletime.Types import CabalHelper.Shared.Common import CabalHelper.Shared.Sandbox (getSandboxPkgDb) -import CabalHelper.Shared.Types data Compile = Compile { compCabalSourceDir :: Maybe FilePath, diff --git a/CabalHelper/Compiletime/Data.hs b/CabalHelper/Compiletime/Data.hs index 9539ef3..6b096d7 100644 --- a/CabalHelper/Compiletime/Data.hs +++ b/CabalHelper/Compiletime/Data.hs @@ -76,5 +76,5 @@ sourceFiles = , ("Runtime/Licenses.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Runtime/Licenses.hs"))) , ("Shared/Common.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Common.hs"))) , ("Shared/Sandbox.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Sandbox.hs"))) - , ("Shared/Types.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/Types.hs"))) + , ("Shared/InterfaceTypes.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "CabalHelper/Shared/InterfaceTypes.hs"))) ] diff --git a/CabalHelper/Compiletime/Log.hs b/CabalHelper/Compiletime/Log.hs index e4033f1..6931fa9 100644 --- a/CabalHelper/Compiletime/Log.hs +++ b/CabalHelper/Compiletime/Log.hs @@ -7,7 +7,7 @@ import Data.String import System.IO import Prelude -import CabalHelper.Shared.Types +import CabalHelper.Compiletime.Types vLog :: MonadIO m => Options -> String -> m () vLog Options { verbose = True } msg = diff --git a/CabalHelper/Compiletime/Types.hs b/CabalHelper/Compiletime/Types.hs new file mode 100644 index 0000000..138baa7 --- /dev/null +++ b/CabalHelper/Compiletime/Types.hs @@ -0,0 +1,32 @@ +-- cabal-helper: Simple interface to Cabal's configuration state +-- Copyright (C) 2015 Daniel Gröber <dxld ÄT darkboxed DOT org> +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. + +{-# LANGUAGE DeriveGeneric, DeriveDataTypeable, DefaultSignatures #-} +module CabalHelper.Compiletime.Types where + +import Data.Version + +data Options = Options { + verbose :: Bool + , ghcProgram :: FilePath + , ghcPkgProgram :: FilePath + , cabalProgram :: FilePath + , cabalVersion :: Maybe Version + , cabalPkgDb :: Maybe FilePath +} + +defaultOptions :: Options +defaultOptions = Options False "ghc" "ghc-pkg" "cabal" Nothing Nothing diff --git a/CabalHelper/Compiletime/Wrapper.hs b/CabalHelper/Compiletime/Wrapper.hs index dccbc29..7325654 100644 --- a/CabalHelper/Compiletime/Wrapper.hs +++ b/CabalHelper/Compiletime/Wrapper.hs @@ -42,8 +42,9 @@ import Paths_cabal_helper (version) import CabalHelper.Compiletime.Compat.Version import CabalHelper.Compiletime.Compile import CabalHelper.Compiletime.GuessGhc +import CabalHelper.Compiletime.Types import CabalHelper.Shared.Common -import CabalHelper.Shared.Types +import CabalHelper.Shared.InterfaceTypes usage :: IO () usage = do diff --git a/CabalHelper/Runtime/Main.hs b/CabalHelper/Runtime/Main.hs index 570cf58..c7f6652 100644 --- a/CabalHelper/Runtime/Main.hs +++ b/CabalHelper/Runtime/Main.hs @@ -122,7 +122,7 @@ import Text.Printf import CabalHelper.Shared.Sandbox import CabalHelper.Shared.Common -import CabalHelper.Shared.Types hiding (Options(..)) +import CabalHelper.Shared.InterfaceTypes import CabalHelper.Runtime.Licenses diff --git a/CabalHelper/Shared/Types.hs b/CabalHelper/Shared/InterfaceTypes.hs index 18d532b..88858d0 100644 --- a/CabalHelper/Shared/Types.hs +++ b/CabalHelper/Shared/InterfaceTypes.hs @@ -1,5 +1,5 @@ -- cabal-helper: Simple interface to Cabal's configuration state --- Copyright (C) 2015 Daniel Gröber <dxld ÄT darkboxed DOT org> +-- Copyright (C) 2015,2017 Daniel Gröber <dxld ÄT darkboxed DOT org> -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU Affero General Public License as published by @@ -15,22 +15,25 @@ -- along with this program. If not, see <http://www.gnu.org/licenses/>. {-# LANGUAGE DeriveGeneric, DeriveDataTypeable, DefaultSignatures #-} -module CabalHelper.Shared.Types where -import GHC.Generics -import Data.Version +{-| +Module : CabalHelper.Shared.InterfaceTypes +Description : Types which are used by c-h library and executable to communicate +License : AGPL-3 -newtype ChModuleName = ChModuleName String - deriving (Eq, Ord, Read, Show, Generic) +These types are used to communicate between the cabal-helper library and main +executable, using Show/Read. If any types in this module change the major +version must be bumped since this will be exposed in the @Distribution.Helper@ +module. -data ChComponentName = ChSetupHsName - | ChLibName - | ChSubLibName String - | ChFLibName String - | ChExeName String - | ChTestName String - | ChBenchName String - deriving (Eq, Ord, Read, Show, Generic) +The cached executables in @$XDG_CACHE_DIR/cabal-helper@ use the cabal-helper +version (among other things) as a cache key so we don't need to worry about +talking to an old executable. +-} +module CabalHelper.Shared.InterfaceTypes where + +import GHC.Generics +import Data.Version data ChResponse = ChResponseCompList [(ChComponentName, [String])] @@ -43,6 +46,18 @@ data ChResponse | ChResponseFlags [(String, Bool)] deriving (Eq, Ord, Read, Show, Generic) +data ChComponentName = ChSetupHsName + | ChLibName + | ChSubLibName String + | ChFLibName String + | ChExeName String + | ChTestName String + | ChBenchName String + deriving (Eq, Ord, Read, Show, Generic) + +newtype ChModuleName = ChModuleName String + deriving (Eq, Ord, Read, Show, Generic) + data ChEntrypoint = ChSetupEntrypoint -- ^ Almost like 'ChExeEntrypoint' but -- @main-is@ could either be @"Setup.hs"@ -- or @"Setup.lhs"@. Since we don't know @@ -59,15 +74,3 @@ data ChPkgDb = ChPkgGlobal | ChPkgUser | ChPkgSpecific FilePath deriving (Eq, Ord, Read, Show, Generic) - -data Options = Options { - verbose :: Bool - , ghcProgram :: FilePath - , ghcPkgProgram :: FilePath - , cabalProgram :: FilePath - , cabalVersion :: Maybe Version - , cabalPkgDb :: Maybe FilePath -} - -defaultOptions :: Options -defaultOptions = Options False "ghc" "ghc-pkg" "cabal" Nothing Nothing |