hpack 0.19.2 → 0.19.3
raw patch · 6 files changed
+66/−2 lines, 6 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Hpack.Config: [sectionExtraFrameworksDirs] :: Section a -> [FilePath]
+ Hpack.Config: [sectionFrameworks] :: Section a -> [FilePath]
- Hpack.Config: Section :: a -> [FilePath] -> Dependencies -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [GhcjsOption] -> [CppOption] -> [CcOption] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Dependencies -> Section a
+ Hpack.Config: Section :: a -> [FilePath] -> Dependencies -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [GhcjsOption] -> [CppOption] -> [CcOption] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Dependencies -> Section a
Files
- CHANGELOG.md +6/−0
- hpack.cabal +1/−1
- src/Hpack/Config.hs +9/−1
- src/Hpack/Run.hs +2/−0
- test/Hpack/ConfigSpec.hs +18/−0
- test/Hpack/RunSpec.hs +30/−0
CHANGELOG.md view
@@ -1,3 +1,9 @@+## Changes in 0.19.3+ - Add support for `frameworks` and `extra-frameworks-dirs`++## Changes in 0.19.2+ - Compatibility with `Glob >= 0.9.0`+ ## Changes in 0.19.1 - Add `IsList` instance for `Dependencies`
hpack.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: hpack-version: 0.19.2+version: 0.19.3 synopsis: An alternative format for Haskell packages description: See README at <https://github.com/sol/hpack#readme> category: Development
src/Hpack/Config.hs view
@@ -126,7 +126,7 @@ deps xs = [(name, version) | (name, version) <- (Map.toList . unDependencies . sectionDependencies) xs] section :: a -> Section a-section a = Section a [] mempty [] [] [] [] [] [] [] [] [] [] [] [] [] [] Nothing [] mempty+section a = Section a [] mempty [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] Nothing [] mempty packageConfig :: FilePath packageConfig = "package.yaml"@@ -241,6 +241,8 @@ , commonOptionsJsSources :: Maybe (List FilePath) , commonOptionsExtraLibDirs :: Maybe (List FilePath) , commonOptionsExtraLibraries :: Maybe (List FilePath)+, commonOptionsExtraFrameworksDirs :: Maybe (List FilePath)+, commonOptionsFrameworks :: Maybe (List String) , commonOptionsIncludeDirs :: Maybe (List FilePath) , commonOptionsInstallIncludes :: Maybe (List FilePath) , commonOptionsLdOptions :: Maybe (List LdOption)@@ -436,6 +438,8 @@ , sectionJsSources :: [FilePath] , sectionExtraLibDirs :: [FilePath] , sectionExtraLibraries :: [FilePath]+, sectionExtraFrameworksDirs :: [FilePath]+, sectionFrameworks :: [FilePath] , sectionIncludeDirs :: [FilePath] , sectionInstallIncludes :: [FilePath] , sectionLdOptions :: [LdOption]@@ -736,6 +740,8 @@ , sectionJsSources = sectionJsSources globalOptions ++ sectionJsSources options , sectionExtraLibDirs = sectionExtraLibDirs globalOptions ++ sectionExtraLibDirs options , sectionExtraLibraries = sectionExtraLibraries globalOptions ++ sectionExtraLibraries options+ , sectionExtraFrameworksDirs = sectionExtraFrameworksDirs globalOptions ++ sectionExtraFrameworksDirs options+ , sectionFrameworks = sectionFrameworks globalOptions ++ sectionFrameworks options , sectionIncludeDirs = sectionIncludeDirs globalOptions ++ sectionIncludeDirs options , sectionInstallIncludes = sectionInstallIncludes globalOptions ++ sectionInstallIncludes options , sectionLdOptions = sectionLdOptions globalOptions ++ sectionLdOptions options@@ -762,6 +768,8 @@ , sectionJsSources = fromMaybeList commonOptionsJsSources , sectionExtraLibDirs = fromMaybeList commonOptionsExtraLibDirs , sectionExtraLibraries = fromMaybeList commonOptionsExtraLibraries+ , sectionExtraFrameworksDirs = fromMaybeList commonOptionsExtraFrameworksDirs+ , sectionFrameworks = fromMaybeList commonOptionsFrameworks , sectionIncludeDirs = fromMaybeList commonOptionsIncludeDirs , sectionInstallIncludes = fromMaybeList commonOptionsInstallIncludes , sectionLdOptions = fromMaybeList commonOptionsLdOptions
src/Hpack/Run.hs view
@@ -232,6 +232,8 @@ , Field "js-sources" (LineSeparatedList sectionJsSources) , renderDirectories "extra-lib-dirs" sectionExtraLibDirs , Field "extra-libraries" (LineSeparatedList sectionExtraLibraries)+ , renderDirectories "extra-frameworks-dirs" sectionExtraFrameworksDirs+ , Field "frameworks" (LineSeparatedList sectionFrameworks) , renderLdOptions sectionLdOptions , renderDependencies "build-depends" sectionDependencies , renderDependencies "build-tools" sectionBuildTools
test/Hpack/ConfigSpec.hs view
@@ -148,6 +148,24 @@ captureUnknownFieldsValue <$> decodeEither input `shouldBe` Right (section Empty){sectionExtraLibraries = ["foo", "bar"]} + it "accepts extra-frameworks-dirs" $ do+ let input = [i|+ extra-frameworks-dirs:+ - foo+ - bar+ |]+ captureUnknownFieldsValue <$> decodeEither input+ `shouldBe` Right (section Empty){sectionExtraFrameworksDirs = ["foo", "bar"]}++ it "accepts frameworks" $ do+ let input = [i|+ frameworks:+ - foo+ - bar+ |]+ captureUnknownFieldsValue <$> decodeEither input+ `shouldBe` Right (section Empty){sectionFrameworks = ["foo", "bar"]}+ context "when parsing conditionals" $ do it "accepts conditionals" $ do let input = [i|
test/Hpack/RunSpec.hs view
@@ -254,6 +254,36 @@ , " default-language: Haskell2010" ] + it "includes frameworks" $ do+ renderPackage_ package {packageExecutables = [(section $ Executable "foo" "Main.hs" []) {sectionFrameworks = ["foo", "bar"]}]} `shouldBe` unlines [+ "name: foo"+ , "version: 0.0.0"+ , "build-type: Simple"+ , "cabal-version: >= 1.10"+ , ""+ , "executable foo"+ , " main-is: Main.hs"+ , " frameworks:"+ , " foo"+ , " bar"+ , " default-language: Haskell2010"+ ]++ it "includes extra-framework-dirs" $ do+ renderPackage_ package {packageExecutables = [(section $ Executable "foo" "Main.hs" []) {sectionExtraFrameworksDirs = ["foo", "bar"]}]} `shouldBe` unlines [+ "name: foo"+ , "version: 0.0.0"+ , "build-type: Simple"+ , "cabal-version: >= 1.10"+ , ""+ , "executable foo"+ , " main-is: Main.hs"+ , " extra-frameworks-dirs:"+ , " foo"+ , " bar"+ , " default-language: Haskell2010"+ ]+ it "includes GHC profiling options" $ do renderPackage_ package {packageExecutables = [(section $ Executable "foo" "Main.hs" []) {sectionGhcProfOptions = ["-fprof-auto", "-rtsopts"]}]} `shouldBe` unlines [ "name: foo"