diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2017-09-25 10:45:03 +0200 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2017-09-25 13:11:28 +0200 |
commit | b42f9095993f5862d4450a84f6cf535b7a252d48 (patch) | |
tree | 4b55984dd1258a9bb9c6cb950834961bd2a10524 | |
parent | 373a468190a393fa2f7cf3851f1050dc6bf5bea1 (diff) |
Remove 'Options' from shared Types module
Only needed at compiletime, were being hidden everywhere else already.
-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 | ||||
-rw-r--r-- | Distribution/Helper.hs | 2 | ||||
-rw-r--r-- | cabal-helper.cabal | 8 | ||||
-rw-r--r-- | tests/CompileTest.hs | 2 |
10 files changed, 73 insertions, 37 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 diff --git a/Distribution/Helper.hs b/Distribution/Helper.hs index 7bd76e9..6c31208 100644 --- a/Distribution/Helper.hs +++ b/Distribution/Helper.hs @@ -96,7 +96,7 @@ import GHC.Generics import Prelude import Paths_cabal_helper (getLibexecDir) -import CabalHelper.Shared.Types hiding (Options(..)) +import CabalHelper.Shared.InterfaceTypes import CabalHelper.Shared.Sandbox -- | Paths or names of various programs we need. diff --git a/cabal-helper.cabal b/cabal-helper.cabal index 31d3aca..a205290 100644 --- a/cabal-helper.cabal +++ b/cabal-helper.cabal @@ -57,8 +57,8 @@ library default-extensions: NondecreasingIndentation exposed-modules: Distribution.Helper other-modules: + CabalHelper.Shared.InterfaceTypes CabalHelper.Shared.Sandbox - CabalHelper.Shared.Types Paths_cabal_helper ghc-options: -Wall build-depends: base < 5 && >= 4.5 @@ -82,9 +82,9 @@ executable cabal-helper-wrapper CabalHelper.Compiletime.Data CabalHelper.Compiletime.GuessGhc CabalHelper.Compiletime.Log + CabalHelper.Compiletime.Types CabalHelper.Shared.Common CabalHelper.Shared.Sandbox - CabalHelper.Shared.Types Paths_cabal_helper ghc-options: -Wall scope: private @@ -116,9 +116,9 @@ test-suite compile-test CabalHelper.Compiletime.Compile CabalHelper.Compiletime.Data CabalHelper.Compiletime.Log + CabalHelper.Compiletime.Types CabalHelper.Shared.Common CabalHelper.Shared.Sandbox - CabalHelper.Shared.Types Distribution.Helper Paths_cabal_helper hs-source-dirs: . @@ -157,8 +157,8 @@ executable cabal-helper-main other-modules: CabalHelper.Runtime.Licenses CabalHelper.Shared.Common + CabalHelper.Shared.InterfaceTypes CabalHelper.Shared.Sandbox - CabalHelper.Shared.Types ghc-options: -Wall -fno-warn-unused-imports build-depends: base , Cabal diff --git a/tests/CompileTest.hs b/tests/CompileTest.hs index 4d22b67..b408788 100644 --- a/tests/CompileTest.hs +++ b/tests/CompileTest.hs @@ -18,8 +18,8 @@ import Prelude import CabalHelper.Compiletime.Compat.Environment import CabalHelper.Compiletime.Compat.Version import CabalHelper.Compiletime.Compile +import CabalHelper.Compiletime.Types import CabalHelper.Shared.Common -import CabalHelper.Shared.Types runReadP'Dist :: Dist.ReadP t t -> String -> t runReadP'Dist p i = case filter ((=="") . snd) $ Dist.readP_to_S p i of |