name:                internal-preprocessor-test
version:             0.1.0.0
synopsis:            Internal custom preprocessor example.
description:         See https://github.com/haskell/cabal/issues/1541#issuecomment-30155513
license:             GPL-3
author:              Mikhail Glushenkov
maintainer:          mikhail.glushenkov@gmail.com
category:            Testing
build-type:          Custom
cabal-version:       >=1.10

-- Note that exe comes before the library. 
-- The reason is backwards compat: old versions of Cabal (< 1.18)
-- don't have a proper component build graph, so components are
-- built in declaration order.
executable             my-custom-preprocessor
  main-is:             MyCustomPreprocessor.hs
  build-depends:       base, directory
  default-language:    Haskell2010

library
  exposed-modules:     A
  build-depends:       base
  build-tools:         my-custom-preprocessor
  -- ^ Note the internal dependency.
  default-language:    Haskell2010

executable             hello-world
  main-is:             Hello.hs
  build-depends:       base, internal-preprocessor-test
  default-language:    Haskell2010
