Created
September 20, 2021 14:57
-
-
Save nrnrnr/969c57a125f0f621d8afbbf71dad8777 to your computer and use it in GitHub Desktop.
Hadrian build with `-haddock` option, to ensure the HLS gets the links to the GHC API documentation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Ensure we don't expose any unfoldings to guarantee quick rebuilds | |
{-# OPTIONS_GHC -O0 #-} | |
-- If you want to customise your build you should copy this file from | |
-- hadrian/src/UserSettings.hs to hadrian/UserSettings.hs and edit your copy. | |
-- If you don't copy the file your changes will be tracked by git and you can | |
-- accidentally commit them. | |
-- | |
-- See doc/user-settings.md for instructions, and src/Flavour.hs for auxiliary | |
-- functions for manipulating flavours. | |
-- Please update doc/user-settings.md when committing changes to this file. | |
module UserSettings ( | |
userFlavours, userPackages, userDefaultFlavour, | |
verboseCommand, buildProgressColour, successColour, finalStage | |
) where | |
import Flavour.Type | |
import Expression | |
import Packages | |
import {-# SOURCE #-} Settings.Default | |
-- See doc/user-settings.md for instructions. | |
-- Please update doc/user-settings.md when committing changes to this file. | |
-- | Name of the default flavour, i.e the one used when no --flavour=<name> | |
-- argument is passed to Hadrian. | |
userDefaultFlavour :: String | |
userDefaultFlavour = "user" | |
-- | User-defined build flavours. See 'userFlavour' as an example. | |
userFlavours :: [Flavour] | |
userFlavours = [userFlavour] -- Add more build flavours if need be. | |
-- | This is an example user-defined build flavour. Feel free to modify it and | |
-- use by passing @--flavour=user@ from the command line. | |
userFlavour :: Flavour | |
userFlavour = | |
defaultFlavour { name = "user", args = defaultArgs <> userArgs } -- Modify other settings here. | |
userArgs :: Args | |
userArgs = builder Ghc ? package Packages.ghc ? arg "-haddock" | |
-- | Add user-defined packages. Note, this only lets Hadrian know about the | |
-- existence of a new package; to actually build it you need to create a new | |
-- build flavour, modifying the list of packages that are built by default. | |
userPackages :: [Package] | |
userPackages = [] | |
-- | Set to 'True' to print full command lines during the build process. Note: | |
-- this is a 'Predicate', hence you can enable verbose output only for certain | |
-- targets, e.g.: @verboseCommand = package ghcPrim@. | |
verboseCommand :: Predicate | |
verboseCommand = do | |
verbosity <- expr getVerbosity | |
return $ verbosity >= Loud | |
-- | Set colour for build progress messages (e.g. executing a build command). | |
buildProgressColour :: BuildProgressColour | |
buildProgressColour = mkBuildProgressColour (Dull Magenta) | |
-- | Set colour for success messages (e.g. a package is built successfully). | |
successColour :: SuccessColour | |
successColour = mkSuccessColour (Dull Green) | |
-- | Stop after building the StageN compiler. | |
-- For example, setting the 'finalStage' to 'Stage1' will just build the | |
-- 'Stage1' compiler. Setting it to 'Stage3' will build the 'Stage3' | |
-- compiler. Setting it to 'Stage0' will mean nothing gets built at all. | |
finalStage :: Stage | |
finalStage = Stage2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment