packages feed

hsqml 0.2.0.1 → 0.2.0.2

raw patch · 3 files changed

+74/−31 lines, 3 filesdep ~textsetup-changed

Dependency ranges changed: text

Files

CHANGELOG view
@@ -1,5 +1,10 @@ HsQML - Release History +release-0.2.0.2 - 2014.01.18++  * Added support for Cabal 1.18 API.+  * Relaxed Cabal dependency constraint on 'text'.+ release-0.2.0.1 - 2013.11.12    * Added check that MacOS uses primordial thread for event loop.@@ -14,7 +19,7 @@   * Added envionment variable to control logging.   * New design for marshalling type-classes.   * New API for Engine management.-  * Relexed Cabal dependency constraints.+  * Relaxed Cabal dependency constraints.   * Fixed linking problem on some Linux systems.   * Fixed support for non-threaded RTS.   * Fixed various object lifetime issues.
Setup.hs view
@@ -1,31 +1,70 @@ #!/usr/bin/runhaskell +{-# LANGUAGE TemplateHaskell #-} module Main where -import Data.List-import Distribution.Simple-import Distribution.Simple.LocalBuildInfo-import Distribution.Simple.PackageIndex-import Distribution.Simple.Setup-import Distribution.Simple.Utils (rawSystemExit)-import qualified Distribution.InstalledPackageInfo as I-import Distribution.PackageDescription-import System.Directory-import System.FilePath- import Control.Monad import Data.Char+import Data.List import Data.Maybe-import qualified Distribution.ModuleName as ModuleName+import Distribution.Simple import Distribution.Simple.BuildPaths+import Distribution.Simple.LocalBuildInfo import Distribution.Simple.Program import Distribution.Simple.Program.Ld import Distribution.Simple.Register+import Distribution.Simple.Setup import Distribution.Simple.Utils import Distribution.Text-import Distribution.Version import Distribution.Verbosity+import qualified Distribution.InstalledPackageInfo as I+import qualified Distribution.ModuleName as ModuleName+import Distribution.PackageDescription+import Language.Haskell.TH import System.FilePath +-- Use Template Haskell to support both the pre- and post-1.18 Cabal API+$(let+    newCabalAPI = cabalVersion >= Version [1,17,0] []+    vnameE = VarE . mkName+    vnameP = VarP . mkName+    cnameE = ConE . mkName+    app2E f x y = AppE (AppE f x) y+    app3E f x y z = AppE (app2E f x y) z+    nothingE = cnameE "Nothing"+    falseE = cnameE "False"+    -- 'LocalBuildInfo' record changed fields in Cabal 1.18+    extractCLBI = if newCabalAPI+        then app2E (vnameE "getComponentLocalBuildInfo")+            (vnameE "x") (cnameE "CLibName")+        else AppE (vnameE "fromJust") $ AppE (vnameE "libraryConfig")+            (vnameE "x")+    -- 'programFindLocation' field changed signature in Cabal 1.18+    adaptFindLoc = if newCabalAPI+        then LamE [vnameP "f", vnameP "x", WildP] $+            AppE (vnameE "f") (vnameE "x")+        else vnameE "id"+    -- 'rawSystemStdInOut' function changed signature in Cabal 1.18+    rawSystemStdErr = if newCabalAPI+        then AppE (app3E (app3E (vnameE "rawSystemStdInOut")+            (vnameE "v") (vnameE "p") (vnameE "a"))+            nothingE nothingE nothingE) falseE +        else app2E (app3E (vnameE "rawSystemStdInOut")+            (vnameE "v") (vnameE "p") (vnameE "a")) nothingE falseE+    -- 'programPostConf' field changed signature in Cabal 1.18+    noPostConf = if newCabalAPI+        then LamE [WildP, vnameP "c"] $ AppE (vnameE "return") (vnameE "c")+        else LamE [WildP, WildP] $ AppE (vnameE "return") (cnameE "[]")+    in return [+        FunD (mkName "extractCLBI") [+            Clause [vnameP "x"] (NormalB extractCLBI) []],+        FunD (mkName "adaptFindLoc") [+            Clause [] (NormalB adaptFindLoc) []],+        FunD (mkName "rawSystemStdErr") [+            Clause [vnameP "v", vnameP "p", vnameP "a"] (+                NormalB rawSystemStdErr) []],+        FunD (mkName "noPostConf") [+            Clause [] (NormalB noPostConf) []]])+ main :: IO () main = defaultMainWithHooks simpleUserHooks {   confHook = confWithQt, buildHook = buildWithQt,@@ -111,9 +150,9 @@  mkGHCiFixLibPkgId :: PackageDescription -> PackageIdentifier mkGHCiFixLibPkgId pkgDesc =-  let id = packageId pkgDesc-      (PackageName name) = pkgName id-  in id {pkgName = PackageName $ "cbits-" ++ name}+  let pid = packageId pkgDesc+      (PackageName name) = pkgName pid+  in pid {pkgName = PackageName $ "cbits-" ++ name}  mkGHCiFixLibName :: PackageDescription -> String mkGHCiFixLibName pkgDesc =@@ -133,7 +172,6 @@     (stubObjs ++ hsObjs)   (ghc,_) <- requireProgram verb ghcProgram (withPrograms lbi)   let bi = libBuildInfo lib-      bDir = buildDir lbi   runProgram verb ghc (     ["-shared","-o",bDir </> (mkGHCiFixLibName pkgDesc)] ++     (ldOptions bi) ++ (map ("-l" ++) $ extraLibs bi) ++@@ -144,14 +182,15 @@ mocProgram :: Program mocProgram = Program {   programName = "moc",-  programFindLocation = flip findProgramLocation "moc",-  programFindVersion = \verbosity path -> do-    (_,line,_) <- rawSystemStdInOut verbosity path ["-v"] Nothing False+  programFindLocation = adaptFindLoc $+    \verb -> findProgramLocation verb "moc",+  programFindVersion = \verb path -> do+    (_,line,_) <- rawSystemStdErr verb path ["-v"]     return $       findSubseq (stripPrefix "(Qt ") line >>=       Just . takeWhile (\c -> isDigit c || c == '.') >>=       simpleParse,-  programPostConf = \_ _ -> return []+  programPostConf = noPostConf }  qtVersionRange :: VersionRange@@ -172,12 +211,12 @@  regWithQt ::    PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()-regWithQt pkg@PackageDescription { library       = Just lib  }-         lbi@LocalBuildInfo     { libraryConfig = Just clbi } hooks flags = do+regWithQt pkg@PackageDescription { library = Just lib } lbi _ flags = do   let verb    = fromFlag $ regVerbosity flags       inplace = fromFlag $ regInPlace flags       dist    = fromFlag $ regDistPref flags       pkgDb   = withPackageDB lbi+      clbi    = extractCLBI lbi   instPkgInfo <- generateRegistrationInfo     verb pkg lib lbi clbi inplace dist   let instPkgInfo' = if (needsGHCiFix pkg lbi)@@ -187,9 +226,8 @@         else instPkgInfo   case flagToMaybe $ regGenPkgConf flags of     Just regFile -> do-      let regFile = fromMaybe (display (packageId pkg) <.> "conf")-            (fromFlag $ regGenPkgConf flags)-      writeUTF8File regFile $ I.showInstalledPackageInfo instPkgInfo'+      writeUTF8File (fromMaybe (display (packageId pkg) <.> "conf") regFile) $+        I.showInstalledPackageInfo instPkgInfo'     _ | fromFlag (regGenScript flags) ->       die "Registration scripts are not implemented."       | otherwise -> 
hsqml.cabal view
@@ -1,6 +1,6 @@ Name:               hsqml-Version:            0.2.0.1-Cabal-version:      >= 1.10+Version:            0.2.0.2+Cabal-version:      >= 1.14 Build-type:         Custom License:            BSD3 License-file:       LICENSE@@ -34,7 +34,7 @@         containers   >= 0.4 && < 0.6,         filepath     == 1.3.*,         network      >= 2.3 && < 2.5,-        text         == 0.11.*,+        text         >= 0.11 && < 1.2,         tagged       >= 0.4 && < 0.8,         transformers >= 0.2 && < 0.4     Exposed-modules:@@ -88,7 +88,7 @@         containers >= 0.4 && < 0.6,         directory  >= 1.1 && < 1.3,         network    >= 2.3 && < 2.5,-        text       == 0.11.*,+        text       >= 0.11 && < 1.2,         tagged     >= 0.4 && < 0.8,         QuickCheck >= 2.4 && < 2.7,         hsqml      == 0.2.*