This project is no longer under development. Instead, see the netlogo-headless
directory in the NetLogo/NetLogo repository.
The NetLogo Headless project is broken into a number of modules, explained in the sections below.
The end result of these modules is two artifacts NetLogoHeadless.jar
and netlogo-parser_sjs.jar
.
NetLogoHeadless.jar
bundles all the code for NetLogoHeadless.
netlogo-parser_sjs.jar
is a scalajs jar that allows users to use NetLogo from scalajs.
Projects:
The dependencies are as follows
sharedResources
^ ^
| |
parserJVM macros
| |
jvmBuild parserJS
SBT works as it normally does. You can prefix tasks with the project name, like:
> parserJVM/compile
[info] Updating {file:~/NetLogo-Headless/}parserJVM...
or you can switch "into" a project and use the commands without prefix:
> project parserJVM
> compile
[info] Updating {file:~/NetLogo-Headless/}parserJVM...
This project provides a number of features for parserJs that would otherwise be unavailable. These include resource-loading and character detection. Please note that this project is not needed by parser-js at runtime, and runtime dependencies between this project and parser-js are undesirable.
This project bundles all of NetLogoHeadless into one jar. It depends on (and should include files from) sharedResources and parserJvm.
This project bundles the parser files into a scala.js jar.
It depends on macros for compile-time values of files that will not be available to it at runtime.
It merges sources from parser-core
(also used by Parser JVM) with the sources in parser-js
.
This project bundles the parser files into a scala jar.
It could be used anywhere that a NetLogo parser (without code generation) is required.
It merges source from parser-core
(also used by Parser JS) with the sources in parser-jvm
.
This project contains resources that are shared among all projects. These are primarily static text files, but this project also handles I18N normalization and bundling.