diff --git a/haskell-gi.cabal b/haskell-gi.cabal
--- a/haskell-gi.cabal
+++ b/haskell-gi.cabal
@@ -1,5 +1,5 @@
 name:                haskell-gi
-version:             0.17.1
+version:             0.17.2
 synopsis:            Generate Haskell bindings for GObject Introspection capable libraries
 description:         Generate Haskell bindings for GObject Introspection capable libraries. This includes most notably
                      Gtk+, but many other libraries in the GObject ecosystem provide introspection data too.
@@ -23,7 +23,7 @@
 Library
   pkgconfig-depends:   gobject-introspection-1.0 >= 1.42, gobject-2.0 >= 2.36
   build-depends:       base >= 4.7 && < 5,
-                       haskell-gi-base == 0.17,
+                       haskell-gi-base == 0.17.*,
                        Cabal >= 1.20,
                        containers,
                        directory,
diff --git a/lib/Data/GI/CodeGen/CabalHooks.hs b/lib/Data/GI/CodeGen/CabalHooks.hs
--- a/lib/Data/GI/CodeGen/CabalHooks.hs
+++ b/lib/Data/GI/CodeGen/CabalHooks.hs
@@ -1,13 +1,14 @@
 -- | Convenience hooks for writing custom @Setup.hs@ files for
 -- bindings.
 module Data.GI.CodeGen.CabalHooks
-    ( simpleHaskellGIHooks
+    ( setupHaskellGIBinding
     ) where
 
 import qualified Distribution.ModuleName as MN
 import Distribution.Simple.LocalBuildInfo
 import Distribution.Simple.Setup
-import Distribution.Simple (UserHooks(..), simpleUserHooks)
+import Distribution.Simple (UserHooks(..), simpleUserHooks,
+                            defaultMainWithHooks)
 import Distribution.PackageDescription
 
 import Data.GI.CodeGen.API (loadGIRInfo)
@@ -70,15 +71,17 @@
 
   defaultConfHook (gpd', hbi) flags
 
--- | A version of `simpleUserHooks` which generates the bindings as needed.
-simpleHaskellGIHooks :: Text -- ^ name
-                     -> Text -- ^ version
-                     -> Bool -- ^ verbose
-                     -> Maybe FilePath -- ^ overrides file
-                     -> Maybe FilePath -- ^ output dir
-                     -> UserHooks
-simpleHaskellGIHooks name version verbose overridesFile outputDir =
-    simpleUserHooks { confHook = confCodeGenHook name version verbose
-                                                 overridesFile outputDir
-                                                 (confHook simpleUserHooks)
-                    }
+
+-- | The entry point for @Setup.hs@ files in bindings.
+setupHaskellGIBinding :: Text -- ^ name
+                      -> Text -- ^ version
+                      -> Bool -- ^ verbose
+                      -> Maybe FilePath -- ^ overrides file
+                      -> Maybe FilePath -- ^ output dir
+                      -> IO ()
+setupHaskellGIBinding name version verbose overridesFile outputDir =
+    defaultMainWithHooks (simpleUserHooks {
+                            confHook = confCodeGenHook name version verbose
+                                       overridesFile outputDir
+                                       (confHook simpleUserHooks)
+                          })
