@@ -6,6 +6,7 @@ import IRTS.CodegenCommon
6import IRTS.Java.ASTBuilding
6import IRTS.Java.ASTBuilding
7import IRTS.Java.JTypes
7import IRTS.Java.JTypes
8import IRTS.Java.Mangling
8import IRTS.Java.Mangling
9+import IRTS.Java.Pom (pomString)
9import IRTS.Lang
10import IRTS.Lang
10import IRTS.Simplified
11import IRTS.Simplified
11import Util.System
12import Util.System
@@ -16,10 +17,9 @@ import Control.Monad
16import Control.Monad.Error
17import Control.Monad.Error
17import qualified Control.Monad.Trans as T
18import qualified Control.Monad.Trans as T
18import Control.Monad.Trans.State
19import Control.Monad.Trans.State
19−import Data.List (foldl', isSuffixOf, unfoldr)
20+import Data.List (foldl', isSuffixOf)
20import qualified Data.Text as T
21import qualified Data.Text as T
21import qualified Data.Text.IO as TIO
22import qualified Data.Text.IO as TIO
23import qualified Data.Vector.Unboxed as V
23import qualified Data.Vector.Unboxed as V
24import Language.Java.Parser
24import Language.Java.Parser
25import Language.Java.Pretty
25import Language.Java.Pretty
@@ -101,19 +101,9 @@ generatePom :: FilePath -> -- tgt dir
101 [String] -> -- libs
101 [String] -> -- libs
103generatePom tgtDir out libs = do
103generatePom tgtDir out libs = do
104− execPom <- getExecutablePom
105− execPomTemplate <- TIO.readFile execPom
106 let (Ident clsName) = either error id (mkClassName out)
104 let (Ident clsName) = either error id (mkClassName out)
107− let execPom = T.replace (T.pack "$MAIN-CLASS$")
109− (T.replace (T.pack "$ARTIFACT-NAME$")
110− (T.pack $ takeBaseName out)
105+ let execPom = pomString clsName (takeBaseName out) libs
111− (T.replace (T.pack "$DEPENDENCIES$")
112− (T.pack $ concatMap (ppElement . mkDependency) libs)
116− TIO.writeFile (pomFileName tgtDir) execPom
106+ writeFile (pomFileName tgtDir) execPom
118invokeMvn :: FilePath -> String -> IO ()
108invokeMvn :: FilePath -> String -> IO ()
119invokeMvn tgtDir command = do
109invokeMvn tgtDir command = do
@@ -175,26 +165,6 @@ jarHeader =
175 ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
165 ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
176 ++ "exit 1\n"
166 ++ "exit 1\n"
178−-- from http://stackoverflow.com/a/4978733/283260
179−splitOn :: Eq a => a -> [a] -> [[a]]
180−splitOn chr = unfoldr sep where
182− sep l = Just . fmap (drop 1) . break (==chr) $ l
184−mkDependency :: String -> Element
186− case splitOn ':' d of
188− unode "dependency" [
194−mkGroupId g = unode "groupId" g
195−mkArtifactId a = unode "artifactId" a
196−mkVersion v = unode "version" v
198-----------------------------------------------------------------------
168-----------------------------------------------------------------------
199-- Code generation environment
169-- Code generation environment