summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorAndor Penzes <andor.penzes@gmail.com>2016-01-13 16:11:13 +0100
committerAndor Penzes <andor.penzes@gmail.com>2016-01-13 16:11:19 +0100
commit4775db8d8914792a74ccca177cc77ddd65825fac (patch)
tree581ac0e2462eb9bbcab0e0c4b85f60260297cf55 /tool
parent514f2610c00c5a04cb49eee4f64cac8980911617 (diff)
lc: load Prelude from cabal data dir
Diffstat (limited to 'tool')
-rw-r--r--tool/Compiler.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/tool/Compiler.hs b/tool/Compiler.hs
index 2195f0c6..03429434 100644
--- a/tool/Compiler.hs
+++ b/tool/Compiler.hs
@@ -1,22 +1,30 @@
1-- {-# LANGUAGE CPP #-}
1{-# LANGUAGE RecordWildCards #-} 2{-# LANGUAGE RecordWildCards #-}
2import Options.Applicative 3import Options.Applicative
3import Data.Aeson 4import Data.Aeson
4import qualified Data.ByteString.Lazy as B 5import qualified Data.ByteString.Lazy as B
5import LambdaCube.Compiler.Driver 6import LambdaCube.Compiler.Driver
7import System.FilePath
8import Paths_lambdacube_compiler (getDataDir)
6 9
7data Config 10data Config
8 = Config 11 = Config
9 { srcName :: String 12 { srcName :: String
10 , backend :: Backend 13 , backend :: Backend
14 , sourceDir :: FilePath
11 } 15 }
12 16
13sample :: Parser Config 17sample :: Parser Config
14sample = Config 18sample = Config
15 <$> argument str (metavar "SOURCE_FILE") 19 <$> argument str (metavar "SOURCE_FILE")
16 <*> flag OpenGL33 WebGL1 (long "webgl" <> help "generate WebGL 1.0 pipeline" ) 20 <*> flag OpenGL33 WebGL1 (long "webgl" <> help "generate WebGL 1.0 pipeline" )
21 <*> pure "/lc"
17 22
18main :: IO () 23main :: IO ()
19main = execParser opts >>= compile 24main = do
25 cabalDataDir <- getDataDir
26 cfg <- execParser opts
27 compile (cfg {sourceDir = cabalDataDir </> "lc"})
20 where 28 where
21 opts = info (helper <*> sample) 29 opts = info (helper <*> sample)
22 ( fullDesc 30 ( fullDesc
@@ -25,7 +33,7 @@ main = execParser opts >>= compile
25 33
26compile :: Config -> IO () 34compile :: Config -> IO ()
27compile Config{..} = do 35compile Config{..} = do
28 pplRes <- compileMain ["."] backend srcName 36 pplRes <- compileMain [".", sourceDir] backend srcName
29 case pplRes of 37 case pplRes of
30 Left err -> putStrLn err 38 Left err -> putStrLn err
31 Right ppl -> do 39 Right ppl -> do