@@ -2,14 +2,13 @@
2module IRTS.CodegenJava (codegenJava) where
2module IRTS.CodegenJava (codegenJava) where
4import Core.TT hiding (mkApp)
4import Core.TT hiding (mkApp)
6import IRTS.CodegenCommon
5import IRTS.CodegenCommon
7import IRTS.Java.ASTBuilding
6import IRTS.Java.ASTBuilding
8import IRTS.Java.JTypes
7import IRTS.Java.JTypes
9import IRTS.Java.Mangling
8import IRTS.Java.Mangling
9+import IRTS.Java.Pom (pomString)
10import IRTS.Lang
10import IRTS.Lang
11import IRTS.Simplified
11import IRTS.Simplified
13import Util.System
12import Util.System
15import Control.Applicative hiding (Const)
14import Control.Applicative hiding (Const)
@@ -18,10 +17,7 @@ import Control.Monad
18import Control.Monad.Error
17import Control.Monad.Error
19import qualified Control.Monad.Trans as T
18import qualified Control.Monad.Trans as T
20import Control.Monad.Trans.State
19import Control.Monad.Trans.State
22−import Data.List (foldl', intercalate, isPrefixOf,
23− isSuffixOf)
20+import Data.List (foldl', isSuffixOf)
24−import Data.Maybe (fromJust)
25import qualified Data.Text as T
21import qualified Data.Text as T
26import qualified Data.Text.IO as TIO
22import qualified Data.Text.IO as TIO
27import qualified Data.Vector.Unboxed as V
23import qualified Data.Vector.Unboxed as V
@@ -104,20 +100,11 @@ generatePom :: FilePath -> -- tgt dir
104 FilePath -> -- output target
100 FilePath -> -- output target
105 [String] -> -- libs
101 [String] -> -- libs
107−generatePom tgtDir out libs = do
103+generatePom tgtDir out libs = writeFile (pomFileName tgtDir) execPom
108− execPom <- getExecutablePom
104+ where
109− execPomTemplate <- TIO.readFile execPom
110− let (Ident clsName) = either error id (mkClassName out)
105+ (Ident clsName) = either error id (mkClassName out)
111− let execPom = T.replace (T.pack "$MAIN-CLASS$")
113− (T.replace (T.pack "$ARTIFACT-NAME$")
114− (T.pack $ takeBaseName out)
106+ execPom = pomString clsName (takeBaseName out) libs
115− (T.replace (T.pack "$DEPENDENCIES$")
107+
116− (mkPomDependencies libs)
120− TIO.writeFile (pomFileName tgtDir) execPom
122invokeMvn :: FilePath -> String -> IO ()
109invokeMvn :: FilePath -> String -> IO ()
123invokeMvn tgtDir command = do
110invokeMvn tgtDir command = do
@@ -179,24 +166,6 @@ jarHeader =
179 ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
166 ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
180 ++ "exit 1\n"
167 ++ "exit 1\n"
182−mkPomDependencies :: [String] -> T.Text
183−mkPomDependencies deps =
184− T.concat $ map (T.concat . map (T.append (T.pack " ")) . mkDependency . T.pack) deps
187− case T.splitOn (T.pack ":") s of
189− [ T.pack $ "<dependency>\n"
190− , T.append (T.pack " ") $ mkGroupId g
191− , T.append (T.pack " ") $ mkArtifactId a
192− , T.append (T.pack " ") $ mkVersion v
193− , T.pack $ "</dependency>\n"
196− mkGroupId g = T.append (T.pack $ "<groupId>") (T.append g $ T.pack "</groupId>\n")
197− mkArtifactId a = T.append (T.pack $ "<artifactId>") (T.append a $ T.pack "</artifactId>\n")
198− mkVersion v = T.append (T.pack $ "<version>") (T.append v $ T.pack "</version>\n")
200-----------------------------------------------------------------------
169-----------------------------------------------------------------------
201-- Code generation environment
170-- Code generation environment