summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GF/Compile.hs4
-rw-r--r--src/GF/Infra/Option.hs6
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