Setup Hooks: make Location a separate data type
[cabal.git] / cabal-testsuite / PackageTests / SetupHooks / SetupHooksMissingRuleRes / SetupHooks.hs
blob4223ee4385fdd106ad94dce51f583e92bb88bb0e
1 {-# LANGUAGE DuplicateRecordFields #-}
2 {-# LANGUAGE OverloadedStrings #-}
3 {-# LANGUAGE StaticPointers #-}
5 module SetupHooks where
7 import Distribution.Simple.LocalBuildInfo (interpretSymbolicPathLBI)
8 import Distribution.Simple.SetupHooks
9 import Distribution.Utils.Path (makeRelativePathEx)
11 import qualified Data.List.NonEmpty as NE ( NonEmpty(..) )
13 setupHooks :: SetupHooks
14 setupHooks =
15 noSetupHooks
16 { buildHooks =
17 noBuildHooks
18 { preBuildComponentRules = Just $ rules (static ()) missingResRules
22 missingResRules :: PreBuildComponentInputs -> RulesM ()
23 missingResRules (PreBuildComponentInputs { localBuildInfo = lbi, targetInfo = tgt }) = do
24 let clbi = targetCLBI tgt
25 autogenDir = autogenComponentModulesDir lbi clbi
26 action = mkCommand (static Dict) (static (\ _ -> return ())) ()
27 registerRule_ "r" $
28 staticRule action
29 [ ]
30 ( Location autogenDir (makeRelativePathEx "G.hs") NE.:| [] )