cabal-pkg-config-version-hook 0.1.0.1 → 0.1.1.0
raw patch · 3 files changed
+13/−6 lines, 3 filesdep +containersPVP ok
version bump matches the API change (PVP)
Dependencies added: containers
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- cabal-pkg-config-version-hook.cabal +2/−1
- src/Distribution/PkgConfigVersionHook.hs +7/−5
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for cabal-pkg-config-version-hook +## Unreleased++* Fix support for Cabal 3.12.1.0, which would otherwise not pass defines to inline C/C++ code (e.g. inline-c-cpp)+ ## 0.1.0.1 -- 2023-06-28 * Fix an incomplete pattern match
cabal-pkg-config-version-hook.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: cabal-pkg-config-version-hook-version: 0.1.0.1+version: 0.1.1.0 synopsis: Make Cabal aware of pkg-config package versions description: A setup hook for Cabal that determines the compile-time version of a pkg-config package and adds CPP macros and enables flags. -- A URL where users can report bugs.@@ -21,6 +21,7 @@ build-depends: base ==4.* , Cabal >= 2.2.0.0+ , containers , process , lens hs-source-dirs: src
src/Distribution/PkgConfigVersionHook.hs view
@@ -44,7 +44,7 @@ import qualified Data.List as L import Distribution.Simple (UserHooks (confHook)) import Distribution.Simple.Setup (ConfigFlags, configConfigurationsFlags)-import Distribution.Types.BuildInfo.Lens (ccOptions, cppOptions, cxxOptions)+import Distribution.Types.BuildInfo.Lens (ccOptions, cppOptions, cxxOptions, options) import Distribution.Types.Flag (flagName, mkFlagAssignment, mkFlagName, unFlagName) import Distribution.Types.GenericPackageDescription.Lens ( GenericPackageDescription,@@ -116,16 +116,18 @@ ] extraFlags = [ (mkFlagName (flagPrefixName settings ++ "-" ++ show major ++ "_" ++ show minor), (actualMajor, actualMinor) >= (major, minor))- | declaredFlag <- genericPackageDescription ^. genPackageFlags,- let rawName = unFlagName $ flagName declaredFlag,- rawVersion <- L.stripPrefix (flagPrefixName settings ++ "-") rawName & toList,- [major, minor] <- unambiguously parseFlagVersion rawVersion & toList+ | declaredFlag <- genericPackageDescription ^. genPackageFlags,+ let rawName = unFlagName $ flagName declaredFlag,+ rawVersion <- L.stripPrefix (flagPrefixName settings ++ "-") rawName & toList,+ [major, minor] <- unambiguously parseFlagVersion rawVersion & toList ]+ ghcDefines = map ("-optcxx" <>) defines <> map ("-optc" <>) defines setDefines comp x = x & comp . cppOptions %~ (<> defines) & comp . ccOptions %~ (<> defines) & comp . cxxOptions %~ (<> defines)+ & comp . options %~ fmap (<> ghcDefines) genericPackageDescription' = genericPackageDescription & setDefines (condLibrary . traverse . traverse)