redef fun write_files(compiler, compile_dir, cfiles)
do
- var app_name = compiler.mainmodule.name
- var app_package = "org.nitlanguage.{app_name}"
- var app_version = "0.1"
-
- var args = ["android", "-s", "create", "project", "--name", app_name,
- "--target", "android-10", "--path", android_project_root,
- "--package", app_package, "--activity", app_name]
+ var project = toolcontext.modelbuilder.android_project_for(compiler.mainmodule)
+ var short_project_name = compiler.mainmodule.name
+
+ var app_name = project.name
+ if app_name == null then app_name = compiler.mainmodule.name
+ print app_name
+
+ var app_package = project.java_package
+ if app_package == null then app_package = "org.nitlanguage.{short_project_name}"
+
+ var app_version = project.version
+ if app_version == null then app_version = "1.0"
+
+ var args = ["android", "-s",
+ "create", "project",
+ "--name", short_project_name,
+ "--target", "android-10",
+ "--path", android_project_root,
+ "--package", app_package,
+ "--activity", short_project_name]
toolcontext.exec_and_check(args)
# create compile_dir
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="{{{app_package}}}"
- android:versionCode="1"
+ android:versionCode="{{{project.version_code}}}"
android:versionName="{{{app_version}}}"
android:debuggable="true">
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+
+{{{project.manifest_application_lines.join("\n")}}}
+
</application>
+{{{project.manifest_lines.join("\n")}}}
+
</manifest>
<!-- END_INCLUDE(manifest) -->
"""
### Link to assets (for mnit and others)
# This will be accessed from `android_project_root`
- var mainmodule_dir = compiler.mainmodule.location.file.filename.dirname
- var assets_dir = "{mainmodule_dir}/../assets"
- if not assets_dir.file_exists then assets_dir = "{mainmodule_dir}/assets"
+ var assets_dir
+ if compiler.mainmodule.location.file != null then
+ # it is a real file, use "{file}/../assets"
+ assets_dir = "{compiler.mainmodule.location.file.filename.dirname}/../assets"
+ else
+ # probably used -m, use "."
+ assets_dir = "assets"
+ end
if assets_dir.file_exists then
assets_dir = assets_dir.realpath
var target_assets_dir = "{android_project_root}/assets"