packages feed

kit 0.5.1 → 0.5.2

raw patch · 7 files changed

+26/−25 lines, 7 files

Files

Kit/Main.hs view
@@ -38,11 +38,12 @@   doUpdate :: IO ()   doUpdate = run $ do               repo <- liftIO defaultLocalRepository+              spec <- myKitSpec               deps <- getMyDeps repo               puts $ "Dependencies: " ++ (stringJoin ", " $ map kitFileName deps)               liftIO $ mapM (installKit repo) deps               puts " -> Generating XCode project..."-              generateXCodeProject deps+              generateXCodeProject deps $ specKitDepsXcodeFlags spec               puts "Kit complete. You may need to restart XCode for it to pick up any changes."                 where p x = liftIO $ print x                       puts x = liftIO $ putStrLn x
Kit/Model.hs view
@@ -11,7 +11,8 @@     specTestDirectory :: FilePath,     specLibDirectory :: FilePath,     specPrefixFile :: FilePath,-    specConfigFile :: FilePath+    specConfigFile :: FilePath,+    specKitDepsXcodeFlags :: Maybe String   } deriving (Show, Read)    type Version = String@@ -25,7 +26,7 @@   kitFileName k = kitName k ++ "-" ++ kitVersion k    defaultSpecForKit :: Kit -> KitSpec-  defaultSpecForKit kit = KitSpec kit [] "src" "test" "lib" "Prefix.pch" "Config.xcconfig"+  defaultSpecForKit kit = KitSpec kit [] "src" "test" "lib" "Prefix.pch" "Config.xcconfig" Nothing   -- TODO make this and the json reading use the same defaults   -- I suspect that to do this I'll need update functions for each of   -- fields in the KitSpec record.@@ -35,7 +36,7 @@       showJSON kit = makeObj [ ("name", w kitName) , ("version", w kitVersion) ] where w f = showJSON . f $ kit        readJSON (JSObject obj) = Kit <$> f "name" <*> f "version"-        where f x = f' obj x +                                  where f x = f' obj x     instance JSON KitSpec where       showJSON spec = makeObj [@@ -53,6 +54,7 @@                       <*> (f "lib-directory" <|> pure "lib")                       <*> (f "prefix-header" <|> pure "Prefix.pch")                       <*> (f "xcconfig" <|> pure "Config.xcconfig")+                      <*> (Just <$> f "kitdeps-xcode-flags" <|> pure Nothing)         where f x = f' obj x    f' obj x = mLookup x (fromJSObject obj) >>= readJSON
Kit/Project.hs view
@@ -29,6 +29,7 @@   prefixFile = "KitDeps_Prefix.pch"   projectFile = projectDir </> "project.pbxproj"   xcodeConfigFile = "Kit.xcconfig"+  depsConfigFile = "DepsOnly.xcconfig"   kitUpdateMakeFilePath = "Makefile"   kitUpdateMakeFile = "kit: Kit.xcconfig\nKit.xcconfig: ../KitSpec\n\tcd .. && kit update && exit 1\n" @@ -51,15 +52,16 @@         prefix = readHeader spec     in  KitContents <$> headers <*> sources <*> libs <*> config <*> prefix -  generateXCodeProject :: [Kit] -> KitIO ()-  generateXCodeProject deps = do+  generateXCodeProject :: [Kit] -> Maybe String -> KitIO ()+  generateXCodeProject deps depsOnlyConfig = do     liftIO $ mkdir_p kitDir     specs <- forM deps $ \kit -> readSpec (kitDir </> kitFileName kit </> "KitSpec")  -    inDirectory kitDir $ do-      kitsContents <- forM specs (liftIO . readKitContents)-      liftIO $ createProjectFile kitsContents-      liftIO $ createHeader kitsContents-      liftIO $ createConfig kitsContents specs+    liftIO $ inDirectory kitDir $ do+      kitsContents <- forM specs readKitContents+      createProjectFile kitsContents+      createHeader kitsContents+      createConfig kitsContents specs+      writeFile depsConfigFile $ "#include \"" ++ xcodeConfigFile ++ "\"\n" ++ fromMaybe "" depsOnlyConfig      where kitFileNames = map kitFileName deps           sourceDirs specs = specs >>= (\spec -> [               kitDir </> (kitFileName . specKit $ spec) </> specSourceDirectory spec, 
Kit/Repository.hs view
@@ -1,10 +1,3 @@-{--  Exposes the repositories.-  Allows you to:-    * copy down kit packages (getKit)-    * read kit specs (getKitSpec)--}- module Kit.Repository (     getKit,     getKitSpec,
Kit/XCode/Builder.hs view
@@ -28,7 +28,7 @@       allBuildFiles = (sourceBuildFiles ++ headerBuildFiles ++ libBuildFiles)       bfs = buildFileSection allBuildFiles       frs = fileReferenceSection $ map buildFileReference allBuildFiles-      classes = classesSection $ map buildFileReference (sourceBuildFiles ++ headerBuildFiles)+      classes = classesGroup $ map buildFileReference (sourceBuildFiles ++ headerBuildFiles)       hs = headersBuildPhase headerBuildFiles       srcs = sourcesBuildPhase sourceBuildFiles       xxx = frameworksBuildPhase $ traceShow libBuildFiles libBuildFiles@@ -47,7 +47,7 @@         "isa" ~> val "PBXFileReference",         "fileEncoding" ~> val "4",         "lastKnownFileType" ~> val "text.xcconfig",-        "path" ~> val "Kit.xcconfig",+        "path" ~> val "DepsOnly.xcconfig",         "sourceTree" ~> val "<group>"         ],       "AA747D9E0F9514B9006C5449" ~> obj [@@ -73,8 +73,8 @@       ]     ] -  classesSection :: [PBXFileReference] -> PListObjectItem -  classesSection files = classesGroupUUID ~> group "Classes" (map (val . fileReferenceId) files)+  classesGroup :: [PBXFileReference] -> PListObjectItem +  classesGroup files = classesGroupUUID ~> group "Classes" (map (val . fileReferenceId) files) 	   frameworksGroup :: [PBXFileReference] -> PListObjectItem   frameworksGroup files = frameworksGroupUUID ~> group "Frameworks" (val "AACBBE490F95108600F1A2B1" :  (map (val . fileReferenceId) files))
Kit/XCode/XCConfig.hs view
@@ -11,7 +11,11 @@   type XCCSetting = (String, String)   type XCCInclude = String                     -  data XCConfig = XCC { configName :: String, configSettings :: M.Map String String, configIncludes :: [XCCInclude] } deriving (Eq, Show)+  data XCConfig = XCC { +    configName :: String, +    configSettings :: M.Map String String, +    configIncludes :: [XCCInclude]+  } deriving (Eq, Show)      includeStart = "#include "   @@ -33,7 +37,6 @@   includeToString :: XCCInclude -> String   includeToString a = includeStart ++ a   -  -- TODO incorporate the config name   configToString :: XCConfig -> String   configToString (XCC _ settings includes) = stringJoin "\n" $ (map includeToString includes) ++ (map settingToString $ M.toList settings)                   
kit.cabal view
@@ -1,5 +1,5 @@ name:           kit-version:        0.5.1+version:        0.5.2 cabal-version:  >=1.2 build-type:     Simple license:        BSD3