cabal-macosx 0.2.3.3 → 0.2.3.4
raw patch · 3 files changed
+23/−24 lines, 3 filesdep +hscolourdep −cabal-macosxPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hscolour
Dependencies removed: cabal-macosx
API changes (from Hackage documentation)
- Distribution.MacOSX.Common: ChaseWith :: Exclusions -> ChaseDeps
- Distribution.MacOSX.Common: ChaseWithDefaults :: ChaseDeps
- Distribution.MacOSX.Common: DoNotChase :: ChaseDeps
- Distribution.MacOSX.Common: MacApp :: String -> Maybe FilePath -> Maybe FilePath -> [FilePath] -> [FilePath] -> ChaseDeps -> MacApp
- Distribution.MacOSX.Common: [appDeps] :: MacApp -> ChaseDeps
- Distribution.MacOSX.Common: [appIcon] :: MacApp -> Maybe FilePath
- Distribution.MacOSX.Common: [appName] :: MacApp -> String
- Distribution.MacOSX.Common: [appPlist] :: MacApp -> Maybe FilePath
- Distribution.MacOSX.Common: [otherBins] :: MacApp -> [FilePath]
- Distribution.MacOSX.Common: [resources] :: MacApp -> [FilePath]
- Distribution.MacOSX.Common: data ChaseDeps
- Distribution.MacOSX.Common: data MacApp
- Distribution.MacOSX.Common: defaultExclusions :: Exclusions
- Distribution.MacOSX.Common: instance GHC.Classes.Eq Distribution.MacOSX.Common.ChaseDeps
- Distribution.MacOSX.Common: instance GHC.Classes.Eq Distribution.MacOSX.Common.MacApp
- Distribution.MacOSX.Common: instance GHC.Show.Show Distribution.MacOSX.Common.ChaseDeps
- Distribution.MacOSX.Common: instance GHC.Show.Show Distribution.MacOSX.Common.MacApp
- Distribution.MacOSX.Common: pathInApp :: MacApp -> FilePath -> FilePath
- Distribution.MacOSX.Common: type Exclusions = [String]
- Distribution.MacOSX.Internal: getMacAppsForBuildableExecutors :: [MacApp] -> [Executable] -> [MacApp]
- Distribution.MacOSX.Internal: osxIncantations :: FilePath -> MacApp -> IO ()
Files
- Distribution/MacOSX.hs +2/−3
- Distribution/MacOSX/Internal.hs +9/−14
- cabal-macosx.cabal +12/−7
Distribution/MacOSX.hs view
@@ -31,14 +31,13 @@ import Data.List ( isPrefixOf ) import Data.Text ( Text ) import System.Cmd (system)-import System.Exit import System.FilePath import System.Info (os)-import System.Directory (doesDirectoryExist, copyFile, createDirectoryIfMissing, getHomeDirectory)+import System.Directory (copyFile, createDirectoryIfMissing, getHomeDirectory) import qualified Data.Text as T import qualified Data.Text.IO as T -import Distribution.PackageDescription (PackageDescription(..), Executable(..))+import Distribution.PackageDescription (PackageDescription(..)) import Distribution.Simple import Distribution.Simple.InstallDirs (bindir, prefix, CopyDest(NoCopyDest)) import Distribution.Simple.LocalBuildInfo (absoluteInstallDirs, LocalBuildInfo(..))
Distribution/MacOSX/Internal.hs view
@@ -6,7 +6,7 @@ also carry resources such as icons, program metadata, images, other binaries, and copies of shared libraries. -This module provides a Cabal post-build hook for creating such+This module provides internals to a Cabal post-build hook for creating such application bundles, and controlling their contents. For more information about OSX application bundles, look for the@@ -20,19 +20,21 @@ osxIncantations ) where -import Prelude hiding ( catch, lookup )+import Prelude hiding ( catch ) import System.Cmd ( system ) import System.Exit import System.FilePath import Control.Monad (filterM) import System.Directory (doesDirectoryExist)-import Data.Foldable ( foldl )-import Data.Map ( empty, insert, lookup ) import Distribution.PackageDescription (BuildInfo(..), Executable(..)) import Distribution.MacOSX.Common -getMacAppsForBuildableExecutors :: [MacApp] -> [Executable] -> [MacApp]+-- | Filter or create new 'MacApp's that are associated by name to buildable 'Executable's.+getMacAppsForBuildableExecutors ::+ [MacApp] -- ^ List of 'MacApp's to filter if any.+ -> [Executable] -- ^ List of 'Executable's from .cabal.+ -> [MacApp] -- ^ Returned list of 'MacApp's that are associated by name to buildable 'Executable's. getMacAppsForBuildableExecutors macApps executables = case macApps of [] -> map mkDefault buildables@@ -55,16 +57,9 @@ -> MacApp -> IO () osxIncantations appPath app = do dtools <- developerTools-- let rezExec = dtools </> "Rez Carbon.r -o " ++ appPath </> pathInApp app (appName app)- runCommand rezExec-+ runCommand $ dtools </> "Rez Carbon.r -o " ++ appPath </> pathInApp app (appName app) writeFile (appPath </> "PkgInfo") "APPL????"-- -- Tell Finder about the icon.- let setFileExec = dtools </> "SetFile -a C " ++ appPath </> "Contents"- runCommand setFileExec-+ runCommand $ dtools </> "SetFile -a C " ++ appPath </> "Contents" -- Tell Finder about the icon. return () runCommand :: String -> IO ()
cabal-macosx.cabal view
@@ -1,5 +1,5 @@ Name: cabal-macosx-Version: 0.2.3.3+Version: 0.2.3.4 Stability: Alpha Synopsis: Cabal support for creating Mac OSX application bundles. Description:@@ -33,16 +33,17 @@ Library Build-Depends: base >= 4 && < 5 , Cabal >= 1.6, directory+ , hscolour >=1.8 , fgl >= 5.4.2.2 && < 5.6 , filepath , parsec , process , text , containers- Exposed-modules: Distribution.MacOSX,- Distribution.MacOSX.Internal,- Distribution.MacOSX.Common- Other-modules: Distribution.MacOSX.AppBuildInfo,+ Exposed-modules: Distribution.MacOSX+ Other-modules: Distribution.MacOSX.Internal,+ Distribution.MacOSX.Common,+ Distribution.MacOSX.AppBuildInfo, Distribution.MacOSX.Dependencies, Distribution.MacOSX.DG ghc-options: -fwarn-tabs -Wall@@ -61,14 +62,18 @@ test-suite tests ghc-options: -Wall- hs-source-dirs: tests+ hs-source-dirs: .,tests Main-is: Main.hs Type: exitcode-stdio-1.0 Other-modules: Distribution.MacOSX.Internal.Tests Build-depends: base >= 4 && < 4.9 , HUnit >= 1.2 && < 1.4- , cabal-macosx , test-framework == 0.8.* , test-framework-hunit == 0.3.* , temporary , Cabal >= 1.6+ , filepath+ , process+ , text+ , containers+ , directory