git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
C++: update pcc to 0.9
171cc01Andy Arvanitis
pcc/Main.hs+6−5
@@ -32,7 +32,6 @@ import Data.Version (showVersion)
32
32
33import qualified Language.PureScript as P
33import qualified Language.PureScript as P
34import Language.PureScript.Errors.JSON
34import Language.PureScript.Errors.JSON
35−import Language.PureScript.Make
36
35
37import Options.Applicative as Opts
36import Options.Applicative as Opts
38
37
@@ -43,6 +42,9 @@ import System.FilePath.Glob (glob)
43import System.IO (hSetEncoding, hPutStrLn, stdout, stderr, utf8)
42import System.IO (hSetEncoding, hPutStrLn, stdout, stderr, utf8)
44import System.IO.UTF8
43import System.IO.UTF8
45
44
45+import Make
46+import Makefile
47+
46data PCCMakeOptions = PCCMakeOptions
48data PCCMakeOptions = PCCMakeOptions
47 { pccmInput :: [FilePath]
49 { pccmInput :: [FilePath]
48 , pccmOutputDir :: FilePath
50 , pccmOutputDir :: FilePath
@@ -71,14 +73,13 @@ compile :: PCCMakeOptions -> IO ()
71compile PCCMakeOptions{..} = do
73compile PCCMakeOptions{..} = do
72 input <- globWarningOnMisses (unless pccmJSONErrors . warnFileTypeNotFound) pccmInput
74 input <- globWarningOnMisses (unless pccmJSONErrors . warnFileTypeNotFound) pccmInput
73 when (null input && not pccmJSONErrors) $ do
75 when (null input && not pccmJSONErrors) $ do
74− hPutStrLn stderr "pcc: No input files."
76+ generateMakefile
75− exitFailure
77+ exitSuccess
76 moduleFiles <- readInput input
78 moduleFiles <- readInput input
77 (makeErrors, makeWarnings) <- runMake pccmOpts $ do
79 (makeErrors, makeWarnings) <- runMake pccmOpts $ do
78 ms <- P.parseModulesFromFiles id moduleFiles
80 ms <- P.parseModulesFromFiles id moduleFiles
79 let filePathMap = M.fromList $ map (\(fp, P.Module _ _ mn _ _) -> (mn, Right fp)) ms
81 let filePathMap = M.fromList $ map (\(fp, P.Module _ _ mn _ _) -> (mn, Right fp)) ms
80− foreigns <- inferForeignModules filePathMap
81− let makeActions = buildMakeActions pccmOutputDir filePathMap foreigns pccmUsePrefix
82+ let makeActions = buildMakeActions pccmOutputDir filePathMap pccmUsePrefix
82 P.make makeActions (map snd ms)
83 P.make makeActions (map snd ms)
83 printWarningsAndErrors (P.optionsVerboseErrors pccmOpts) pccmJSONErrors makeWarnings makeErrors
84 printWarningsAndErrors (P.optionsVerboseErrors pccmOpts) pccmJSONErrors makeWarnings makeErrors
84 exitSuccess
85 exitSuccess