diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/cabal-pkg-config-version-hook.cabal b/cabal-pkg-config-version-hook.cabal
--- a/cabal-pkg-config-version-hook.cabal
+++ b/cabal-pkg-config-version-hook.cabal
@@ -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
diff --git a/src/Distribution/PkgConfigVersionHook.hs b/src/Distribution/PkgConfigVersionHook.hs
--- a/src/Distribution/PkgConfigVersionHook.hs
+++ b/src/Distribution/PkgConfigVersionHook.hs
@@ -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)
