gtk-mac-integration 0.2.0.0 → 0.2.0.4
raw patch · 4 files changed
+66/−32 lines, 4 filesdep ~glibdep ~gtk
Dependency ranges changed: glib, gtk
Files
- Graphics/UI/Gtk/OSX/Types.chs +7/−2
- Gtk2HsSetup.hs +31/−11
- SetupWrapper.hs +20/−11
- gtk-mac-integration.cabal +8/−8
Graphics/UI/Gtk/OSX/Types.chs view
@@ -1,5 +1,5 @@-{-# OPTIONS_HADDOCK hide #-} {-# LANGUAGE CPP #-}+{-# OPTIONS_HADDOCK hide #-} -- -*-haskell-*- -- -------------------- automatically generated file - do not edit ---------- -- Object hierarchy for the GIMP Toolkit (GTK) Binding for Haskell@@ -42,7 +42,12 @@ castToApplication, gTypeApplication ) where -import Foreign.ForeignPtr (ForeignPtr, castForeignPtr, unsafeForeignPtrToPtr)+import Foreign.ForeignPtr (ForeignPtr, castForeignPtr)+#if __GLASGOW_HASKELL__ >= 707+import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)+#else+import Foreign.ForeignPtr (unsafeForeignPtrToPtr)+#endif import Foreign.C.Types (CULong(..), CUInt(..)) import System.Glib.GType (GType, typeInstanceIsA) {#import Graphics.UI.GtkInternals#}
Gtk2HsSetup.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP, ViewPatterns #-} #ifndef CABAL_VERSION_CHECK #error This module has to be compiled via the Setup.hs program which generates the gtk2hs-macros.h file@@ -29,7 +29,7 @@ emptyBuildInfo, allBuildInfo, Library(..), libModules, hasLibs)-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..),+import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(withPackageDB, buildDir, localPkgDescr, installedPkgs, withPrograms), InstallDirs(..), componentPackageDeps, absoluteInstallDirs)@@ -56,13 +56,25 @@ import Distribution.Verbosity import Control.Monad (when, unless, filterM, liftM, forM, forM_) import Data.Maybe ( isJust, isNothing, fromMaybe, maybeToList )-import Data.List (isPrefixOf, isSuffixOf, nub)-import Data.Char (isAlpha)+import Data.List (isPrefixOf, isSuffixOf, stripPrefix, nub)+import Data.Char (isAlpha, isNumber) import qualified Data.Map as M import qualified Data.Set as S+import qualified Distribution.Simple.LocalBuildInfo as LBI import Control.Applicative ((<$>)) +#if CABAL_VERSION_CHECK(1,17,0)+import Distribution.Simple.Program.Find ( defaultProgramSearchPath )+onDefaultSearchPath f a b = f a b defaultProgramSearchPath+libraryConfig lbi = case [clbi | (LBI.CLibName, clbi, _) <- LBI.componentsConfigs lbi] of+ [clbi] -> Just clbi+ _ -> Nothing+#else+onDefaultSearchPath = id+libraryConfig = LBI.libraryConfig+#endif+ -- the name of the c2hs pre-compiled header file precompFile = "precompchs.bin" @@ -99,10 +111,16 @@ fixLibs :: [FilePath] -> [String] -> [String] fixLibs dlls = concatMap $ \ lib ->- case filter (("lib" ++ lib) `isPrefixOf`) dlls of+ case filter (isLib lib) dlls of dll:_ -> [dropExtension dll] _ -> if lib == "z" then [] else [lib]-+ where+ isLib lib dll =+ case stripPrefix ("lib"++lib) dll of+ Just ('.':_) -> True+ Just ('-':n:_) | isNumber n -> True+ _ -> False+ -- The following code is a big copy-and-paste job from the sources of -- Cabal 1.8 just to be able to fix a field in the package file. Yuck. @@ -135,8 +153,8 @@ register :: PackageDescription -> LocalBuildInfo -> RegisterFlags -- ^Install in the user's database?; verbose -> IO ()-register pkg@PackageDescription { library = Just lib }- lbi@LocalBuildInfo { libraryConfig = Just clbi } regFlags+register pkg@(library -> Just lib )+ lbi@(libraryConfig -> Just clbi) regFlags = do installedPkgInfoRaw <- generateRegistrationInfo@@ -228,6 +246,7 @@ = nub $ ["-I" ++ dir | dir <- PD.includeDirs bi] ++ [opt | opt@('-':c:_) <- PD.cppOptions bi ++ PD.ccOptions bi, c `elem` "DIU"]+ ++ ["-D__GLASGOW_HASKELL__="++show __GLASGOW_HASKELL__] installCHI :: PackageDescription -- ^information from the .cabal file -> LocalBuildInfo -- ^information from the configure step@@ -283,8 +302,9 @@ | PackageIdentifier name (Version (major:minor:_) _) <- cPkgs , let name' = filter isAlpha (display name) , tag <- name'- : [ name' ++ "-" ++ show major ++ "." ++ show digit- | digit <- [0,2..minor] ]+ :[ name' ++ "-" ++ show maj ++ "." ++ show d2+ | (maj, d2) <- [(maj, d2) | maj <- [0..(major-1)], d2 <- [0,2..20]]+ ++ [(major, d2) | d2 <- [0,2..minor]] ] ] signalsOpts :: [ProgArg]@@ -417,7 +437,7 @@ checkGtk2hsBuildtools :: [Program] -> IO () checkGtk2hsBuildtools programs = do programInfos <- mapM (\ prog -> do- location <- programFindLocation prog normal+ location <- onDefaultSearchPath programFindLocation prog normal return (programName prog, location) ) programs let printError name = do
SetupWrapper.hs view
@@ -29,6 +29,24 @@ import Control.Monad +-- moreRecentFile is implemented in Distribution.Simple.Utils, but only in+-- Cabal >= 1.18. For backwards-compatibility, we implement a copy with a new+-- name here. Some desirable alternate strategies don't work:+-- * We can't use CPP to check which version of Cabal we're up against because+-- this is the file that's generating the macros for doing that.+-- * We can't use the name moreRecentFiles and use+-- import D.S.U hiding (moreRecentFiles)+-- because on old GHC's (and according to the Report) hiding a name that+-- doesn't exist is an error.+moreRecentFile' :: FilePath -> FilePath -> IO Bool+moreRecentFile' a b = do+ exists <- doesFileExist b+ if not exists+ then return True+ else do tb <- getModificationTime b+ ta <- getModificationTime a+ return (ta > tb)+ setupWrapper :: FilePath -> IO () setupWrapper setupHsFile = do args <- getArgs@@ -91,8 +109,8 @@ -- Currently this is GHC only. It should really be generalised. -- compileSetupExecutable = do- setupHsNewer <- setupHsFile `moreRecentFile` setupProgFile- cabalVersionNewer <- setupVersionFile `moreRecentFile` setupProgFile+ setupHsNewer <- setupHsFile `moreRecentFile'` setupProgFile+ cabalVersionNewer <- setupVersionFile `moreRecentFile'` setupProgFile let outOfDate = setupHsNewer || cabalVersionNewer when outOfDate $ do debug verbosity "Setup script is out of date, compiling..."@@ -144,12 +162,3 @@ Nothing Nothing Nothing exitCode <- waitForProcess process unless (exitCode == ExitSuccess) $ exitWith exitCode--moreRecentFile :: FilePath -> FilePath -> IO Bool-moreRecentFile a b = do- exists <- doesFileExist b- if not exists- then return True- else do tb <- getModificationTime b- ta <- getModificationTime a- return (ta > tb)
gtk-mac-integration.cabal view
@@ -1,12 +1,12 @@ Name: gtk-mac-integration-Version: 0.2.0.0+Version: 0.2.0.4 License: LGPL-2.1 License-file: COPYING Copyright: (c) 2001-2010 The Gtk2Hs Team Author: Duncan Coutts, Peter Gavin, Axel Simon, Hamish Mackenzie Maintainer: gtk2hs-users@sourceforge.net Build-Type: Custom-Cabal-Version: >= 1.6.0+Cabal-Version: >= 1.8.0 Stability: provisional homepage: http://www.haskell.org/gtk2hs/ bug-reports: http://hackage.haskell.org/trac/gtk2hs/@@ -34,15 +34,15 @@ x-Types-Hierarchy: hierarchy.list Source-Repository head- type: darcs- location: http://code.haskell.org/gtk-mac-integration/+ type: git+ location: https://github.com/gtk2hs/ige-mac-integration Library build-depends: base >= 4 && < 5, array, containers, mtl,- glib >= 0.11 && < 0.13,- gtk >= 0.11 && < 0.13+ glib >=0.12.5.0 && <0.13,+ gtk >=0.12.5.0 && <0.13 - build-tools: gtk2hsC2hs >= 0.13.5,+ build-tools: gtk2hsC2hs >= 0.13.9, gtk2hsHookGenerator, gtk2hsTypeGen exposed-modules:@@ -61,5 +61,5 @@ x-Signals-Types: marshal.list x-c2hs-Header: hs-gtk-mac-integration.h- pkgconfig-depends: gtk-mac-integration >= 2.0.0+ pkgconfig-depends: gtk-mac-integration >=2.0.0