1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <project name =" custom_logic_for_metadata_generation" default =" -post-compile" >
3+
4+ <property name =" path_to_metadata" value =" ./assets/metadata" />
5+ <property name =" generatedJarLocation" value =" ./dist" />
6+ <property name =" sdk_warning" value =" Currently runAntRelease step in grunt file includes an ant custom_rules.xml step which generates latest greatest metadata... Currently we generate metadata using the target sdk declared in the AndroidManifest file and if the sdk is missing the build will fail" />
7+
8+ <!-- GET MIN SDK VERSION FROM MANIFEST AND SAVE IN PROP "minSdkVersion" -->
9+ <target name =" retrieve_min_version_from_manifest" >
10+
11+ <xmlproperty file =" ./AndroidManifest.xml" collapseAttributes =" true" />
12+
13+ <property name =" relative_path_to_min_declared_sdk" value =" platforms/android-${manifest.uses-sdk.android:minSdkVersion}/android.jar" />
14+
15+ </target >
16+
17+ <!-- REPLACE MIN SDK JAR WITH ONE ON USER MACHINE -->
18+ <target name =" copy_target_sdk" depends =" retrieve_min_version_from_manifest" >
19+ <echo message =" WARNING: ${sdk_warning}" />
20+
21+ <copy file =" ${sdk.dir}/${relative_path_to_min_declared_sdk}" todir =" ${generatedJarLocation}" />
22+
23+ </target >
24+
25+ <target name =" copy_ns_jar" >
26+
27+ <copy file =" ./../dist/framework/libs/nativescript.jar" todir =" ./dist" />
28+
29+ </target >
30+
31+ <target name =" copy_support_jar" >
32+
33+ <copy file =" ./../dist/framework/libs/android-support-v4.jar" todir =" ./dist" />
34+
35+ </target >
36+
37+ <target name =" generate_jar_from_classes" >
38+
39+ <jar destfile =" ${generatedJarLocation}/test-app.jar" basedir =" ./bin/classes" />
40+
41+ </target >
42+
43+ <target name =" delete_old_metadata" >
44+
45+ <delete >
46+
47+ <fileset dir =" ${path_to_metadata}" includes =" **/*.dat" />
48+
49+ </delete >
50+
51+ </target >
52+
53+
54+ <!-- PASS JARS TO METADATA GENERATOR -->
55+ <!-- currently we generate metadata using the target sdk declared in the AndroidManifest file -->
56+ <target name =" generate_metadata_from_given_jars" depends =" copy_target_sdk, copy_ns_jar, copy_support_jar, generate_jar_from_classes, delete_old_metadata" >
57+
58+ <java classname =" com.telerik.metadata.Generator" >
59+
60+ <arg value =" ./dist" ></arg >
61+
62+ <arg value =" ${path_to_metadata}" ></arg >
63+
64+ <classpath >
65+ <pathelement location =" ./../node_modules/tns-android-metadata-generator/classes" />
66+ </classpath >
67+
68+ </java >
69+
70+ <echo message =" --------- created new metadata and moved it to assets/metadata" />
71+
72+ </target >
73+
74+
75+ <target name =" delete_all_files_in_dist" depends =" generate_metadata_from_given_jars" >
76+
77+ <delete >
78+ <fileset dir =" ${generatedJarLocation}" includes =" **/*.jar" />
79+ </delete >
80+
81+ </target >
82+
83+ <target name =" -post-compile" depends =" delete_all_files_in_dist" >
84+
85+ </target >
86+
87+ </project >
0 commit comments