kit 0.5.1 → 0.5.2
raw patch · 7 files changed
+26/−25 lines, 7 files
Files
- Kit/Main.hs +2/−1
- Kit/Model.hs +5/−3
- Kit/Project.hs +9/−7
- Kit/Repository.hs +0/−7
- Kit/XCode/Builder.hs +4/−4
- Kit/XCode/XCConfig.hs +5/−2
- kit.cabal +1/−1
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