summaryrefslogtreecommitdiff
path: root/scalanativelib
diff options
context:
space:
mode:
Diffstat (limited to 'scalanativelib')
-rw-r--r--scalanativelib/api/src/mill/scalanativelib/api/ScalaNativeWorkerApi.scala60
-rw-r--r--scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala27
-rw-r--r--scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala34
-rw-r--r--scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala2
-rw-r--r--scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala4
5 files changed, 66 insertions, 61 deletions
diff --git a/scalanativelib/api/src/mill/scalanativelib/api/ScalaNativeWorkerApi.scala b/scalanativelib/api/src/mill/scalanativelib/api/ScalaNativeWorkerApi.scala
new file mode 100644
index 00000000..e1fee0da
--- /dev/null
+++ b/scalanativelib/api/src/mill/scalanativelib/api/ScalaNativeWorkerApi.scala
@@ -0,0 +1,60 @@
+package mill.scalanativelib.api
+
+import upickle.default.{macroRW, ReadWriter => RW}
+import java.io.File
+import sbt.testing.Framework
+
+trait ScalaNativeWorkerApi {
+ def discoverClang: os.Path
+ def discoverClangPP: os.Path
+ def discoverTarget(clang: os.Path, workDir: os.Path): String
+ def discoverCompileOptions: Seq[String]
+ def discoverLinkingOptions: Seq[String]
+
+ def config(nativeLibJar: os.Path,
+ mainClass: String,
+ classpath: Seq[os.Path],
+ nativeWorkdir: os.Path,
+ nativeClang: os.Path,
+ nativeClangPP: os.Path,
+ nativeTarget: String,
+ nativeCompileOptions: Seq[String],
+ nativeLinkingOptions: Seq[String],
+ nativeGC: String,
+ nativeLinkStubs: Boolean,
+ releaseMode: ReleaseMode,
+ logLevel: NativeLogLevel): NativeConfig
+
+ def defaultGarbageCollector: String
+ def nativeLink(nativeConfig: NativeConfig, outPath: os.Path): os.Path
+
+ def newScalaNativeFrameWork(framework: Framework, id: Int, testBinary: File,
+ logLevel: NativeLogLevel, envVars: Map[String, String]): Framework
+}
+
+
+sealed abstract class NativeLogLevel(val level: Int) extends Ordered[NativeLogLevel] {
+ def compare(that: NativeLogLevel) = this.level - that.level
+}
+
+object NativeLogLevel {
+ case object Error extends NativeLogLevel(200)
+ case object Warn extends NativeLogLevel(300)
+ case object Info extends NativeLogLevel(400)
+ case object Debug extends NativeLogLevel(500)
+ case object Trace extends NativeLogLevel(600)
+
+ implicit def rw: RW[NativeLogLevel] = macroRW
+}
+
+sealed abstract class ReleaseMode(val name: String)
+
+object ReleaseMode {
+ case object Debug extends ReleaseMode("debug")
+ case object Release extends ReleaseMode("release")
+
+ implicit def rw: RW[ReleaseMode] = macroRW
+}
+
+// result wrapper to preserve some type safety
+case class NativeConfig(config: Any) \ No newline at end of file
diff --git a/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala b/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala
index d8a282de..a7a2b96b 100644
--- a/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala
+++ b/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala
@@ -6,37 +6,14 @@ import java.net.URLClassLoader
import coursier.Cache
import coursier.maven.MavenRepository
import mill.define.{Target, Task}
-import mill.eval.Result
+import mill.api.Result
import mill.modules.Jvm
import mill.scalalib.{Dep, DepSyntax, Lib, SbtModule, ScalaModule, TestModule, TestRunner}
import mill.util.Loose.Agg
import sbt.testing.{AnnotatedFingerprint, SubclassFingerprint}
import sbt.testing.Fingerprint
import upickle.default.{ReadWriter => RW, macroRW}
-
-
-sealed abstract class NativeLogLevel(val level: Int) extends Ordered[NativeLogLevel] {
- def compare(that: NativeLogLevel) = this.level - that.level
-}
-
-object NativeLogLevel {
- case object Error extends NativeLogLevel(200)
- case object Warn extends NativeLogLevel(300)
- case object Info extends NativeLogLevel(400)
- case object Debug extends NativeLogLevel(500)
- case object Trace extends NativeLogLevel(600)
-
- implicit def rw: RW[NativeLogLevel] = macroRW
-}
-
-sealed abstract class ReleaseMode(val name: String)
-
-object ReleaseMode {
- case object Debug extends ReleaseMode("debug")
- case object Release extends ReleaseMode("release")
-
- implicit def rw: RW[ReleaseMode] = macroRW
-}
+import mill.scalanativelib.api._
trait ScalaNativeModule extends ScalaModule { outer =>
diff --git a/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala b/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala
index be834e89..80325f1e 100644
--- a/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala
+++ b/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala
@@ -5,7 +5,7 @@ import java.net.URLClassLoader
import mill.define.{Discover, Worker}
import mill.{Agg, T}
-import sbt.testing.Framework
+import mill.scalanativelib.api._
class ScalaNativeWorker {
@@ -38,38 +38,6 @@ class ScalaNativeWorker {
}
}
-
-// result wrapper to preserve some type safety
-case class NativeConfig(config: Any)
-
-trait ScalaNativeWorkerApi {
- def discoverClang: os.Path
- def discoverClangPP: os.Path
- def discoverTarget(clang: os.Path, workDir: os.Path): String
- def discoverCompileOptions: Seq[String]
- def discoverLinkingOptions: Seq[String]
-
- def config(nativeLibJar: os.Path,
- mainClass: String,
- classpath: Seq[os.Path],
- nativeWorkdir: os.Path,
- nativeClang: os.Path,
- nativeClangPP: os.Path,
- nativeTarget: String,
- nativeCompileOptions: Seq[String],
- nativeLinkingOptions: Seq[String],
- nativeGC: String,
- nativeLinkStubs: Boolean,
- releaseMode: ReleaseMode,
- logLevel: NativeLogLevel): NativeConfig
-
- def defaultGarbageCollector: String
- def nativeLink(nativeConfig: NativeConfig, outPath: os.Path): os.Path
-
- def newScalaNativeFrameWork(framework: Framework, id: Int, testBinary: File,
- logLevel: NativeLogLevel, envVars: Map[String, String]): Framework
-}
-
object ScalaNativeWorkerApi extends mill.define.ExternalModule {
def scalaNativeWorker: Worker[ScalaNativeWorker] = T.worker { new ScalaNativeWorker() }
lazy val millDiscover = Discover[this.type]
diff --git a/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala b/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala
index 37fbfc80..74d4238a 100644
--- a/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala
+++ b/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala
@@ -12,7 +12,7 @@ import utest._
import scala.collection.JavaConverters._
-
+import mill.scalanativelib.api._
object HelloNativeWorldTests extends TestSuite {
val workspacePath = TestUtil.getOutPathStatic() / "hello-native-world"
diff --git a/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala b/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala
index 8c24a39e..b32e84ff 100644
--- a/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala
+++ b/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala
@@ -4,13 +4,13 @@ import java.io.File
import java.lang.System.{err, out}
import scala.scalanative.build.{Build, Config, Discover, GC, Logger, Mode}
-import mill.scalanativelib.{NativeConfig, NativeLogLevel, ReleaseMode}
+import mill.scalanativelib.api.{NativeConfig, NativeLogLevel, ReleaseMode}
import sbt.testing.Framework
import scala.scalanative.testinterface.ScalaNativeFramework
-class ScalaNativeWorkerImpl extends mill.scalanativelib.ScalaNativeWorkerApi {
+class ScalaNativeWorkerImpl extends mill.scalanativelib.api.ScalaNativeWorkerApi {
def logger(level: NativeLogLevel) =
Logger(
debugFn = msg => if (level >= NativeLogLevel.Debug) out.println(msg),