diff options
Diffstat (limited to 'hadrian/src/Settings/Builders/Cc.hs')
-rw-r--r-- | hadrian/src/Settings/Builders/Cc.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/hadrian/src/Settings/Builders/Cc.hs b/hadrian/src/Settings/Builders/Cc.hs new file mode 100644 index 0000000000..70d043f76d --- /dev/null +++ b/hadrian/src/Settings/Builders/Cc.hs @@ -0,0 +1,26 @@ +module Settings.Builders.Cc (ccBuilderArgs) where + +import Settings.Builders.Common + +ccBuilderArgs :: Args +ccBuilderArgs = do + way <- getWay + builder Cc ? mconcat + [ getPkgDataList CcArgs + , getStagedSettingList ConfCcArgs + , cIncludeArgs + + , builder (Cc CompileC) ? mconcat + [ pure ["-Wall", "-Werror"] + , Dynamic `wayUnit` way ? pure [ "-fPIC", "-DDYNAMIC" ] + , arg "-c", arg =<< getInput + , arg "-o", arg =<< getOutput ] + + , builder (Cc FindCDependencies) ? do + output <- getOutput + mconcat [ arg "-E" + , arg "-MM", arg "-MG" + , arg "-MF", arg output + , arg "-MT", arg $ dropExtension output -<.> "o" + , arg "-x", arg "c" + , arg =<< getInput ] ] |