From 37aa3947a52a608cdb4cc0c6b0afdeb0c4bf1824 Mon Sep 17 00:00:00 2001 From: krasimir Date: Sat, 9 May 2009 18:00:11 +0000 Subject: [PATCH] implement --gfo-dir. before it was recognized but ignored --- src/GF/Compile.hs | 4 +++- src/GF/Infra/Option.hs | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/GF/Compile.hs b/src/GF/Compile.hs index 67e1d218c..82519aaeb 100644 --- a/src/GF/Compile.hs +++ b/src/GF/Compile.hs @@ -160,7 +160,9 @@ compileOne opts env@(_,srcgr,_) file = do -- for gf source, do full compilation and generate code _ -> do - let gfo = gfoFile (dropExtension file) + let gfo = maybe (gfoFile (dropExtension file)) + (\dir -> dir gfoFile (dropExtension (takeFileName file))) + (flag optGFODir opts) b1 <- ioeIO $ doesFileExist file if not b1 then compileOne opts env $ gfo diff --git a/src/GF/Infra/Option.hs b/src/GF/Infra/Option.hs index b312dbd66..e27283de1 100644 --- a/src/GF/Infra/Option.hs +++ b/src/GF/Infra/Option.hs @@ -146,11 +146,11 @@ data Flags = Flags { optVerbosity :: Verbosity, optShowCPUTime :: Bool, optEmitGFO :: Bool, - optGFODir :: FilePath, optOutputFormats :: [OutputFormat], optSISR :: Maybe SISRFormat, optHaskellOptions :: Set HaskellOption, optLexicalCats :: Set String, + optGFODir :: Maybe FilePath, optOutputFile :: Maybe FilePath, optOutputDir :: Maybe FilePath, optGFLibPath :: Maybe FilePath, @@ -239,11 +239,11 @@ defaultFlags = Flags { optVerbosity = Normal, optShowCPUTime = False, optEmitGFO = True, - optGFODir = ".", optOutputFormats = [], optSISR = Nothing, optHaskellOptions = Set.empty, optLexicalCats = Set.empty, + optGFODir = Nothing, optOutputFile = Nothing, optOutputDir = Nothing, optGFLibPath = Nothing, @@ -373,7 +373,7 @@ optDescr = Nothing -> fail $ "Bad verbosity: " ++ show v cpu x = set $ \o -> o { optShowCPUTime = x } emitGFO x = set $ \o -> o { optEmitGFO = x } - gfoDir x = set $ \o -> o { optGFODir = x } + gfoDir x = set $ \o -> o { optGFODir = Just x } outFmt x = readOutputFormat x >>= \f -> set $ \o -> o { optOutputFormats = optOutputFormats o ++ [f] } sisrFmt x = case x of