@@ -1,40 +0,0 @@
1−#! /usr/bin/env runhaskell
3−> module Main ( main ) where
7−> import Distribution.PackageDescription
8−> import Distribution.Simple
9−> import Distribution.Simple.LocalBuildInfo
10−> import Distribution.Simple.Program
11−> import Distribution.Simple.Setup
14−> main = defaultMainWithHooks simpleUserHooks
15−> { hookedPrograms = map simpleProgram programs
16−> , confHook = configure
19−> programs :: [String]
20−> programs = ["nix-instantiate", "nix-build", "nix-env", "nix-store"]
22−> configure :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo
23−> configure (gpd, hbi) flags = do
24−> lbi' <- confHook simpleUserHooks (gpd, hbi) flags
25−> let paths = map (\p -> (p, maybe p programPath (lookupProgram (simpleProgram p) (withPrograms lbi)))) programs
26−> descr = localPkgDescr lbi'
27−> lib = fromJust (library descr)
28−> libbi = libBuildInfo lib
29−> lbi = lbi' { localPkgDescr = descr
30−> { library = Just (lib { libBuildInfo = libbi { cppOptions = cppOptions libbi ++ map fmtCppArg paths } })
35−> fmtCppArg :: (String, FilePath) -> String
36−> fmtCppArg (prg, path) = "-DPATH_TO_" ++ map mangle prg ++ "=" ++ show path
38−> mangle :: Char -> Char
40−> mangle c = toUpper c