android: support use of -m
[nit.git] / src / android_platform.nit
index 0445559..60acc94 100644 (file)
@@ -76,13 +76,26 @@ class AndroidToolchain
 
        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
@@ -135,7 +148,7 @@ $(call import-module,android/native_app_glue)
 <!-- 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">
 
@@ -162,8 +175,13 @@ $(call import-module,android/native_app_glue)
                 <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) -->
 """
@@ -198,9 +216,14 @@ $(call import-module,android/native_app_glue)
 
                ### 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"