@@ -44,34 +44,30 @@ main = do
44 let srcDir = outputDir </> "src"
44 let srcDir = outputDir </> "src"
45 createDirectory srcDir
45 createDirectory srcDir
47− let buildDir = outputDir </> "build"
48− createDirectory buildDir
50− let makefile = outputDir </> "Makefile"
51− writeFile makefile makefileText
53 let passingDir = baseDir </> "examples" </> "passing"
47 let passingDir = baseDir </> "examples" </> "passing"
54 passingTestCases <- sort . filter (".purs" `isSuffixOf`) <$> getDirectoryContents passingDir
48 passingTestCases <- sort . filter (".purs" `isSuffixOf`) <$> getDirectoryContents passingDir
50+ -- Auto-generate Makefile
51+ setCurrentDirectory outputDir
52+ callProcess "../.cabal-sandbox/bin/pcc" []
56 let tests = filter (`notElem` skipped) passingTestCases
54 let tests = filter (`notElem` skipped) passingTestCases
58 -- Run the tests
56 -- Run the tests
60 forM_ tests $ \inputFile -> do
58 forM_ tests $ \inputFile -> do
62− -- Compile PureScript file
60+ -- Compile/build
64 putStrLn $ "Compiling test " ++ inputFile ++ " ..."
62 putStrLn $ "Compiling test " ++ inputFile ++ " ..."
65 setCurrentDirectory outputDir
63 setCurrentDirectory outputDir
66 copyFile (passingDir </> inputFile) (srcDir </> inputFile)
64 copyFile (passingDir </> inputFile) (srcDir </> inputFile)
67− callProcess "make" ["clean", "main"]
65+ callProcess "make" ["clean"]
66+ callProcess "make" ["debug"]
69− -- Build and run C++ files
68+ -- Run C++ files
71− setCurrentDirectory buildDir
72− callProcess "cmake" ["../output"]
70+ callProcess ("output" </> "bin" </> "main") []
73− callProcess "make" []
74− callProcess (buildDir </> "Main") []
76 removeFile (srcDir </> inputFile)
72 removeFile (srcDir </> inputFile)
@@ -116,22 +112,6 @@ fetchPackages = do
116 callProcess "git" $ ["clone"] ++ (if null branch then [] else ["--branch", branch]) ++ [repo ++ (fst package) ++ ".git"]
112 callProcess "git" $ ["clone"] ++ (if null branch then [] else ["--branch", branch]) ++ [repo ++ (fst package) ++ ".git"]
117 setCurrentDirectory baseDir
113 setCurrentDirectory baseDir
119−-------------------------------------------------------------------------------
120−makefileText :: String
121−-------------------------------------------------------------------------------
122−makefileText = intercalate "\n" lines'
123− where lines' = [ "PCC := '../.cabal-sandbox/bin/pcc'"
124− , "MODULE_DIR='packages'"
125− , "SOURCE_DIR='src'"
126− , "MODULES := $(shell find $(MODULE_DIR) -name '*.purs' | grep -v \\/test\\/ | grep -v \\/example\\/ | grep -v \\/examples\\/)"
127− , "SOURCES := $(shell find $(SOURCE_DIR) -name '*.purs')"
130− , "\t$(PCC) $(MODULES) $(SOURCES)"
132− , "\t@rm -rf output/*"
135-------------------------------------------------------------------------------
115-------------------------------------------------------------------------------
136skipped :: [String]
116skipped :: [String]
137-------------------------------------------------------------------------------
117-------------------------------------------------------------------------------