You can start with
cabal install --dry-run --only-dependencies gtk-0.12.4
and look at what it would do. Then either install them manually, as you said, or add --constraint some-dependency==1.2.3.4
or similar parameters until you are satisfied with the version selection, and have cabal install it all in one go.