@@ -2,14 +2,13 @@
22module IRTS.CodegenJava (codegenJava) where
33
44import Core.TT hiding (mkApp)
5−import IRTS.BCImp
65import IRTS.CodegenCommon
76import IRTS.Java.ASTBuilding
87import IRTS.Java.JTypes
98import IRTS.Java.Mangling
9+import IRTS.Java.Pom (pomString)
1010import IRTS.Lang
1111import IRTS.Simplified
12−import Paths_idris
1312import Util.System
1413
1514import Control.Applicative hiding (Const)
@@ -18,10 +17,7 @@ import Control.Monad
1817import Control.Monad.Error
1918import qualified Control.Monad.Trans as T
2019import Control.Monad.Trans.State
21−import Data.Int
22−import Data.List (foldl', intercalate, isPrefixOf,
23− isSuffixOf)
24−import Data.Maybe (fromJust)
20+import Data.List (foldl', isSuffixOf)
2521import qualified Data.Text as T
2622import qualified Data.Text.IO as TIO
2723import qualified Data.Vector.Unboxed as V
@@ -104,20 +100,11 @@ generatePom :: FilePath -> -- tgt dir
104100 FilePath -> -- output target
105101 [String] -> -- libs
106102 IO ()
107−generatePom tgtDir out libs = do
108− execPom <- getExecutablePom
109− execPomTemplate <- TIO.readFile execPom
110− let (Ident clsName) = either error id (mkClassName out)
111− let execPom = T.replace (T.pack "$MAIN-CLASS$")
112− (T.pack clsName)
113− (T.replace (T.pack "$ARTIFACT-NAME$")
114− (T.pack $ takeBaseName out)
115− (T.replace (T.pack "$DEPENDENCIES$")
116− (mkPomDependencies libs)
117− execPomTemplate
118− )
119− )
120− TIO.writeFile (pomFileName tgtDir) execPom
103+generatePom tgtDir out libs = writeFile (pomFileName tgtDir) execPom
104+ where
105+ (Ident clsName) = either error id (mkClassName out)
106+ execPom = pomString clsName (takeBaseName out) libs
107+
121108
122109invokeMvn :: FilePath -> String -> IO ()
123110invokeMvn tgtDir command = do
@@ -179,24 +166,6 @@ jarHeader =
179166 ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
180167 ++ "exit 1\n"
181168
182−mkPomDependencies :: [String] -> T.Text
183−mkPomDependencies deps =
184− T.concat $ map (T.concat . map (T.append (T.pack " ")) . mkDependency . T.pack) deps
185− where
186− mkDependency s =
187− case T.splitOn (T.pack ":") s of
188− [g, a, v] ->
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"
194− ]
195− _ -> []
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")
199−
200169-----------------------------------------------------------------------
201170-- Code generation environment
202171