diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # chs-cabal
 
+## 0.1.1.2
+
+  * Update for Cabal 3.12
+
 ## 0.1.1.1
 
   * Update for Cabal 3.6
diff --git a/chs-cabal.cabal b/chs-cabal.cabal
--- a/chs-cabal.cabal
+++ b/chs-cabal.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            chs-cabal
-version:         0.1.1.1
+version:         0.1.1.2
 license:         BSD3
 license-file:    LICENSE
 copyright:       Copyright: (c) 2019, 2021 Vanessa McHale
@@ -29,7 +29,7 @@
     build-depends:
         base >=4.7 && <5,
         chs-deps,
-        Cabal >3.4.0.0
+        Cabal >=3.12.0.0
 
     if impl(ghc >=8.0)
         ghc-options:
diff --git a/src/Distribution/C2Hs/TopSort.hs b/src/Distribution/C2Hs/TopSort.hs
--- a/src/Distribution/C2Hs/TopSort.hs
+++ b/src/Distribution/C2Hs/TopSort.hs
@@ -1,16 +1,19 @@
 -- | Topological sort for @.chs@ files according to @{\#import\#}@s.
 module Distribution.C2Hs.TopSort ( reorderC2Hs ) where
 
-import           Control.Applicative       (pure)
-import           Data.Functor              (($>))
-import           Data.Traversable          (traverse)
-import           Distribution.Compat.Graph (Node (..), fromDistinctList,
-                                            revTopSort)
-import           Distribution.ModuleName   (ModuleName, toFilePath)
-import           Distribution.Parsec       (simpleParsec)
-import           Distribution.Simple.Utils (findFileWithExtension, warn)
-import           Distribution.Verbosity    (Verbosity)
-import           Language.Haskell.CHs.Deps (getFileImports)
+import           Control.Applicative                  (pure)
+import           Data.Functor                         (($>))
+import           Data.Traversable                     (traverse)
+import           Distribution.Compat.Graph            (Node (..),
+                                                       fromDistinctList,
+                                                       revTopSort)
+import           Distribution.ModuleName              (ModuleName, toFilePath)
+import           Distribution.Parsec                  (simpleParsec)
+import           Distribution.Simple.PreProcess.Types (Suffix (..))
+import           Distribution.Simple.Utils            (findFileWithExtension,
+                                                       warn)
+import           Distribution.Verbosity               (Verbosity)
+import           Language.Haskell.CHs.Deps            (getFileImports)
 
 -- | Given a list of 'ModuleName's, sort it according to @c2hs@ @{\#import\#}@
 -- declarations.
@@ -26,7 +29,7 @@
 
     pure $ fmap (\(N m _ _) -> m) (revTopSort $ fromDistinctList modDeps)
 
-        where findCHS = findFileWithExtension [".chs"] dirs . toFilePath
+        where findCHS = findFileWithExtension [Suffix ".chs"] dirs . toFilePath
 
 -- | Given a 'ModuleName' and its corresponding filepath, return a 'Node'
 -- with its associated @c2hs@ dependencies
