-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSetup.hs
23 lines (20 loc) · 878 Bytes
/
Setup.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import Distribution.Simple
import Distribution.Simple.Setup
import Distribution.Simple.Program
import Distribution.Simple.Program.Types
import Distribution.Simple.LocalBuildInfo
import Distribution.PackageDescription
cc_flags = ["-stdlib=libc++", "-o", "cbits/hsstring.o", "-c", "cbits/hsstring.cc"]
main :: IO ()
main = defaultMainWithHooks simpleUserHooks {
buildHook = buildCPlusPlus
}
buildCPlusPlus :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
buildCPlusPlus pkg buildInfo hooks flags = do
let verb = fromFlag (buildVerbosity flags)
clang <- findProgramLocation verb "clang++"
let clang' = case clang of
Just x -> x
Nothing -> error "clang++ not on path"
runProgram verb (simpleConfiguredProgram "clang++" (FoundOnSystem clang')) cc_flags
buildHook simpleUserHooks pkg buildInfo hooks flags