From 229f9fb77b866e1c7c2b2a2e5634c5af6e00a91a Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 12 Jan 2021 14:26:37 -0500 Subject: hadrian: Introduce no_profiled_libs flavour transformer Per request of @AndreasK. --- hadrian/doc/flavours.md | 4 ++++ hadrian/src/Flavour.hs | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/hadrian/doc/flavours.md b/hadrian/doc/flavours.md index 4dac301dad..c58398844f 100644 --- a/hadrian/doc/flavours.md +++ b/hadrian/doc/flavours.md @@ -215,6 +215,10 @@ The supported transformers are listed below: default to loading static rather than dynamic library when, e.g., loading libraries during TemplateHaskell evaluations. + + no_profiled_libs + Disables building of libraries in profiled build ways. + ## Ways diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs index a7a32ed634..765358c572 100644 --- a/hadrian/src/Flavour.hs +++ b/hadrian/src/Flavour.hs @@ -11,6 +11,7 @@ module Flavour , viaLlvmBackend , enableProfiledGhc , disableDynamicGhcPrograms + , disableProfiledLibs ) where import Expression @@ -90,6 +91,7 @@ flavourTransformers = M.fromList , "llvm" =: viaLlvmBackend , "profiled_ghc" =: enableProfiledGhc , "no_dynamic_ghc" =: disableDynamicGhcPrograms + , "no_profiled_libs" =: disableProfiledLibs ] where (=:) = (,) @@ -211,3 +213,8 @@ enableProfiledGhc flavour = flavour { ghcProfiled = True } -- | Disable 'dynamicGhcPrograms'. disableDynamicGhcPrograms :: Flavour -> Flavour disableDynamicGhcPrograms flavour = flavour { dynamicGhcPrograms = pure False } + +-- | Don't build libraries in profiled 'Way's. +disableProfiledLibs :: Flavour -> Flavour +disableProfiledLibs flavour = + flavour { libraryWays = filter (not . wayUnit Profiling) <$> libraryWays flavour } -- cgit v1.2.1