File: Setup.hs

package info (click to toggle)
agda 2.4.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,024 kB
  • ctags: 456
  • sloc: haskell: 54,015; lisp: 2,925; yacc: 1,414; ansic: 99; makefile: 8
file content (25 lines) | stat: -rw-r--r-- 909 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.Setup
import Distribution.Simple.BuildPaths (exeExtension)
import Distribution.PackageDescription
import System.FilePath
import System.Process
import System.Exit

main = defaultMainWithHooks hooks

hooks = simpleUserHooks { postInst = checkAgdaPrimitive }

checkAgdaPrimitive :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()
checkAgdaPrimitive args flags pkg info = do
  let dirs = absoluteInstallDirs pkg info NoCopyDest
      agda = buildDir info </> "agda" </> "agda" <.> exeExtension
      prim = datadir dirs </> "lib" </> "prim" </> "Agda" </> "Primitive" <.> "agda"
  putStrLn "Generating Agda library interface files..."
  ok <- rawSystem agda [prim, "-v0"]
  case ok of
    ExitSuccess   -> return ()
    ExitFailure _ -> putStrLn "WARNING: Failed to typecheck Agda.Primitive!"