hpack 0.12.0 → 0.13.0
raw patch · 4 files changed
+78/−31 lines, 4 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Hpack.Config: [sectionCSources] :: Section a -> [FilePath]
+ Hpack.Config: [sectionExtraLibDirs] :: Section a -> [FilePath]
+ Hpack.Config: [sectionExtraLibraries] :: Section a -> [FilePath]
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_12CommonOptions
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_13CommonOptions
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_14CommonOptions
- Hpack.Config: Section :: a -> [FilePath] -> [Dependency] -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [CppOption] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Section a
+ Hpack.Config: Section :: a -> [FilePath] -> [Dependency] -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [CppOption] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Section a
Files
- hpack.cabal +2/−2
- src/Hpack/Config.hs +46/−29
- src/Hpack/Run.hs +3/−0
- test/Hpack/ConfigSpec.hs +27/−0
hpack.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.11.2.+-- This file has been generated from package.yaml by hpack version 0.12.0. -- -- see: https://github.com/sol/hpack name: hpack-version: 0.12.0+version: 0.13.0 synopsis: An alternative format for Haskell packages category: Development homepage: https://github.com/sol/hpack#readme
src/Hpack/Config.hs view
@@ -52,7 +52,7 @@ import Data.String import Data.Text (Text) import qualified Data.Text as T-import GHC.Generics+import GHC.Generics (Generic, Rep) import Prelude () import Prelude.Compat import System.Directory@@ -91,7 +91,7 @@ ++ maybe [] sectionDependencies packageLibrary section :: a -> Section a-section a = Section a [] [] [] [] [] [] [] [] [] [] Nothing []+section a = Section a [] [] [] [] [] [] [] [] [] [] [] [] [] Nothing [] packageConfig :: FilePath packageConfig = "package.yaml"@@ -181,6 +181,9 @@ , commonOptionsGhcOptions :: Maybe (List GhcOption) , commonOptionsGhcProfOptions :: Maybe (List GhcProfOption) , commonOptionsCppOptions :: Maybe (List CppOption)+, commonOptionsCSources :: Maybe (List FilePath)+, commonOptionsExtraLibDirs :: Maybe (List FilePath)+, commonOptionsExtraLibraries :: Maybe (List FilePath) , commonOptionsIncludeDirs :: Maybe (List FilePath) , commonOptionsInstallIncludes :: Maybe (List FilePath) , commonOptionsLdOptions :: Maybe (List LdOption)@@ -384,6 +387,9 @@ , sectionGhcOptions :: [GhcOption] , sectionGhcProfOptions :: [GhcProfOption] , sectionCppOptions :: [CppOption]+, sectionCSources :: [FilePath]+, sectionExtraLibDirs :: [FilePath]+, sectionExtraLibraries :: [FilePath] , sectionIncludeDirs :: [FilePath] , sectionInstallIncludes :: [FilePath] , sectionLdOptions :: [LdOption]@@ -591,37 +597,48 @@ mergeSections :: Section global -> Section a -> Section a mergeSections globalOptions options- = Section a sourceDirs dependencies defaultExtensions otherExtensions ghcOptions ghcProfOptions cppOptions includeDirs installIncludes ldOptions buildable conditionals- where- a = sectionData options- sourceDirs = sectionSourceDirs globalOptions ++ sectionSourceDirs options- defaultExtensions = sectionDefaultExtensions globalOptions ++ sectionDefaultExtensions options- otherExtensions = sectionOtherExtensions globalOptions ++ sectionOtherExtensions options- ghcOptions = sectionGhcOptions globalOptions ++ sectionGhcOptions options- ghcProfOptions = sectionGhcProfOptions globalOptions ++ sectionGhcProfOptions options- cppOptions = sectionCppOptions globalOptions ++ sectionCppOptions options- includeDirs = sectionIncludeDirs globalOptions ++ sectionIncludeDirs options- installIncludes = sectionInstallIncludes globalOptions ++ sectionInstallIncludes options- ldOptions = sectionLdOptions globalOptions ++ sectionLdOptions options- buildable = sectionBuildable options <|> sectionBuildable globalOptions- dependencies = sectionDependencies globalOptions ++ sectionDependencies options- conditionals = sectionConditionals globalOptions ++ sectionConditionals options+ = Section {+ sectionData = sectionData options+ , sectionSourceDirs = sectionSourceDirs globalOptions ++ sectionSourceDirs options+ , sectionDefaultExtensions = sectionDefaultExtensions globalOptions ++ sectionDefaultExtensions options+ , sectionOtherExtensions = sectionOtherExtensions globalOptions ++ sectionOtherExtensions options+ , sectionGhcOptions = sectionGhcOptions globalOptions ++ sectionGhcOptions options+ , sectionGhcProfOptions = sectionGhcProfOptions globalOptions ++ sectionGhcProfOptions options+ , sectionCppOptions = sectionCppOptions globalOptions ++ sectionCppOptions options+ , sectionCSources = sectionCSources globalOptions ++ sectionCSources options+ , sectionExtraLibDirs = sectionExtraLibDirs globalOptions ++ sectionExtraLibDirs options+ , sectionExtraLibraries = sectionExtraLibraries globalOptions ++ sectionExtraLibraries options+ , sectionIncludeDirs = sectionIncludeDirs globalOptions ++ sectionIncludeDirs options+ , sectionInstallIncludes = sectionInstallIncludes globalOptions ++ sectionInstallIncludes options+ , sectionLdOptions = sectionLdOptions globalOptions ++ sectionLdOptions options+ , sectionBuildable = sectionBuildable options <|> sectionBuildable globalOptions+ , sectionDependencies = sectionDependencies globalOptions ++ sectionDependencies options+ , sectionConditionals = sectionConditionals globalOptions ++ sectionConditionals options+ } toSection :: a -> CommonOptions -> ([FieldName], Section a) toSection a CommonOptions{..}- = (concat unknownFields, Section a sourceDirs dependencies defaultExtensions otherExtensions ghcOptions ghcProfOptions cppOptions includeDirs installIncludes ldOptions buildable conditionals)+ = ( concat unknownFields + , Section {+ sectionData = a+ , sectionSourceDirs = fromMaybeList commonOptionsSourceDirs+ , sectionDefaultExtensions = fromMaybeList commonOptionsDefaultExtensions+ , sectionOtherExtensions = fromMaybeList commonOptionsOtherExtensions+ , sectionGhcOptions = fromMaybeList commonOptionsGhcOptions+ , sectionGhcProfOptions = fromMaybeList commonOptionsGhcProfOptions+ , sectionCppOptions = fromMaybeList commonOptionsCppOptions+ , sectionCSources = fromMaybeList commonOptionsCSources+ , sectionExtraLibDirs = fromMaybeList commonOptionsExtraLibDirs+ , sectionExtraLibraries = fromMaybeList commonOptionsExtraLibraries+ , sectionIncludeDirs = fromMaybeList commonOptionsIncludeDirs+ , sectionInstallIncludes = fromMaybeList commonOptionsInstallIncludes+ , sectionLdOptions = fromMaybeList commonOptionsLdOptions+ , sectionBuildable = commonOptionsBuildable+ , sectionDependencies = fromMaybeList commonOptionsDependencies+ , sectionConditionals = conditionals+ }+ ) where- sourceDirs = fromMaybeList commonOptionsSourceDirs- defaultExtensions = fromMaybeList commonOptionsDefaultExtensions- otherExtensions = fromMaybeList commonOptionsOtherExtensions- ghcOptions = fromMaybeList commonOptionsGhcOptions- ghcProfOptions = fromMaybeList commonOptionsGhcProfOptions- cppOptions = fromMaybeList commonOptionsCppOptions- includeDirs = fromMaybeList commonOptionsIncludeDirs- installIncludes = fromMaybeList commonOptionsInstallIncludes- ldOptions = fromMaybeList commonOptionsLdOptions- buildable = commonOptionsBuildable- dependencies = fromMaybeList commonOptionsDependencies (unknownFields, conditionals) = unzip (map toConditional $ fromMaybeList commonOptionsWhen) toConditional :: ConditionalSection -> ([FieldName], Conditional)
src/Hpack/Run.hs view
@@ -211,6 +211,9 @@ , renderCppOptions sectionCppOptions , Field "include-dirs" (LineSeparatedList sectionIncludeDirs) , Field "install-includes" (LineSeparatedList sectionInstallIncludes)+ , Field "c-sources" (LineSeparatedList sectionCSources)+ , Field "extra-lib-dirs" (LineSeparatedList sectionExtraLibDirs)+ , Field "extra-libraries" (LineSeparatedList sectionExtraLibraries) , renderLdOptions sectionLdOptions , renderDependencies sectionDependencies ]
test/Hpack/ConfigSpec.hs view
@@ -108,6 +108,33 @@ captureUnknownFieldsValue <$> decodeEither input `shouldBe` Right (section Empty){sectionInstallIncludes = ["foo.h", "bar.h"]} + it "accepts c-sources" $ do+ let input = [i|+ c-sources:+ - foo.c+ - bar.c+ |]+ captureUnknownFieldsValue <$> decodeEither input+ `shouldBe` Right (section Empty){sectionCSources = ["foo.c", "bar.c"]}++ it "accepts extra-lib-dirs" $ do+ let input = [i|+ extra-lib-dirs:+ - foo+ - bar+ |]+ captureUnknownFieldsValue <$> decodeEither input+ `shouldBe` Right (section Empty){sectionExtraLibDirs = ["foo", "bar"]}++ it "accepts extra-libraries" $ do+ let input = [i|+ extra-libraries:+ - foo+ - bar+ |]+ captureUnknownFieldsValue <$> decodeEither input+ `shouldBe` Right (section Empty){sectionExtraLibraries = ["foo", "bar"]}+ context "when parsing conditionals" $ do it "accepts conditionals" $ do let input = [i|