packages feed

ghc-paths (empty) → 0.1

raw patch · 4 files changed

+131/−0 lines, 4 filesdep +basebuild-type:Customsetup-changed

Dependencies added: base

Files

+ GHC/Paths.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE CPP #-}++module GHC.Paths (+        ghc, ghc_pkg, libdir, docdir+  ) where++libdir, docdir, ghc, ghc_pkg :: FilePath++libdir  = GHC_PATHS_LIBDIR+docdir  = GHC_PATHS_DOCDIR++ghc     = GHC_PATHS_GHC+ghc_pkg = GHC_PATHS_GHC_PKG
+ LICENSE view
@@ -0,0 +1,29 @@+Copyright 2008, Simon Marlow+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++- Redistributions of source code must retain the above copyright notice,+this list of conditions and the following disclaimer.+ +- Redistributions in binary form must reproduce the above copyright notice,+this list of conditions and the following disclaimer in the documentation+and/or other materials provided with the distribution.+ +- Neither name of the author nor the names of its contributors may be+used to endorse or promote products derived from this software without+specific prior written permission. ++THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND THE CONTRIBUTORS "AS+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY+COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,74 @@+import Distribution.Simple+import Distribution.Simple.Setup+import Distribution.PackageDescription+import Distribution.Simple.LocalBuildInfo+import Distribution.InstalledPackageInfo+import Distribution.Simple.Program+import Distribution.Simple.PackageIndex as Pkg++import System.Exit+import System.IO+import Data.IORef+import Data.Char+import Data.List+import Data.Maybe++main = defaultMainWithHooks simpleUserHooks {+                      postConf    = defaultPostConf,+                      preBuild    = readHook,+                      preMakefile = readHook,+                      preClean    = readHook,+                      preCopy     = readHook,+                      preInst     = readHook,+                      preHscolour = readHook,+                      preHaddock  = readHook,+                      preReg      = readHook,+                      preUnreg    = readHook+                     }+  where+    defaultPostConf :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()+    defaultPostConf args flags pkgdescr lbi = do+      libdir_ <- rawSystemProgramStdoutConf (fromFlag (configVerbosity flags))+                     ghcProgram (withPrograms lbi) ["--print-libdir"]+      let libdir = reverse $ dropWhile isSpace $ reverse libdir_++          ghc_pkg = case lookupProgram ghcPkgProgram (withPrograms lbi) of+                          Just p  -> programPath p+                          Nothing -> error "ghc-pkg was not found"+          ghc     = case lookupProgram ghcProgram (withPrograms lbi) of+                          Just p  -> programPath p+                          Nothing -> error "ghc was not found"++          -- figure out docdir from base's haddock-html field+          base_pkg = case searchByName (installedPkgs lbi) "base" of+                        None -> error "no base package"+                        Unambiguous (x:_) -> x+                        _ -> error "base ambiguous"+          base_html = case haddockHTMLs base_pkg of+                        [] -> ""+                        (x:_) -> x+          docdir = fromMaybe base_html $+                        fmap reverse (stripPrefix (reverse "/libraries/base")+                                                  (reverse base_html))++      let buildinfo = emptyBuildInfo{+               cppOptions = ["-DGHC_PATHS_GHC_PKG=\"" ++ ghc_pkg ++ "\"",+                             "-DGHC_PATHS_GHC=\"" ++ ghc ++ "\"",+                             "-DGHC_PATHS_LIBDIR=\"" ++ libdir ++ "\"",+                             "-DGHC_PATHS_DOCDIR=\"" ++ docdir ++ "\"" ]+             }+      writeFile file (show buildinfo)++    readHook :: Args -> a -> IO HookedBuildInfo+    readHook _ _ = do+      str <- readFile file+      return (Just (read str), [])++file = "ghc-paths.buildinfo"++die :: String -> IO a+die msg = do+  hFlush stdout+  hPutStr stderr msg+  exitWith (ExitFailure 1)+
+ ghc-paths.cabal view
@@ -0,0 +1,15 @@+name: ghc-paths+version: 0.1+license: BSD3+license-file: LICENSE+copyright: (c) Simon Marlow+author: Simon Marlow+maintainer: Simon Marlow <marlowsd@gmail.com>+stability: stable+synopsis: Knowledge of the GHC's installation directories+category: Development+cabal-version: >= 1.2+build-depends: base+build-type: Custom++exposed-modules: GHC.Paths