on master help sign in
Add feature to add compiler flags from environment with IDRIS_CFLAGS

Fixes #2274

commitac8022912490d36236cb2b453048f5c6bb36016b authorNiklas Larsson <niklas@mm.st> dateSat 16 May 2015, 18:04 (11 years ago) parent58cd7bf
2 files changed+10−2
src/IRTS/CodegenC.hs+2−1 src/IRTS/System.hs+8−1
src/IRTS/CodegenC.hs+2−1
@@ -73,11 +73,12 @@ codegenC' defs out exec incs objs libs flags exports iface dbg
7373 comp <- getCC
7474 libFlags <- getLibFlags
7575 incFlags <- getIncFlags
76+ envFlags <- getEnvFlags
7677 let args = [gccDbg dbg] ++
7778 gccFlags iface ++
7879 -- # Any flags defined here which alter the RTS API must also be added to config.mk
7980 ["-DHAS_PTHREAD", "-DIDRIS_ENABLE_STATS", "-msse2",
80− "-I."] ++ objs ++ ["-x", "c"] ++
81+ "-I."] ++ objs ++ ["-x", "c"] ++ envFlags ++
8182 (if (exec == Executable) then [] else ["-c"]) ++
8283 [tmpn] ++
8384 (if not iface then concatMap words libFlags else []) ++
src/IRTS/System.hs+8−1
@@ -1,8 +1,9 @@
11{-# LANGUAGE CPP #-}
22module IRTS.System(getDataFileName, getDataDir, getTargetDir,getCC,getLibFlags,getIdrisLibDir,
3− getIncFlags,getMvn,getExecutablePom, version) where
3+ getIncFlags, getEnvFlags, getMvn,getExecutablePom, version) where
44
55import Util.System
6+import Data.List.Split
67
78import Control.Applicative ((<$>))
89import Data.Maybe (fromMaybe)
@@ -19,6 +20,12 @@ import Paths_idris
1920getCC :: IO String
2021getCC = fromMaybe "gcc" <$> environment "IDRIS_CC"
2122
23+getEnvFlags :: IO [String]
24+getEnvFlags = do flags <- environment "IDRIS_CFLAGS"
25+ case flags of
26+ Nothing -> return $ []
27+ Just s -> return $ splitOn " " s
28+
2229mvnCommand :: String
2330#ifdef mingw32_HOST_OS
2431mvnCommand = "mvn.bat"