[DEV] try to take android soft cration more flexible

This commit is contained in:
Edouard DUPIN 2013-08-25 23:28:25 +02:00
parent 6465630a70
commit d1fe3fe6c3
2 changed files with 110 additions and 75 deletions

View File

@ -81,6 +81,9 @@ class module:
"DESCRIPTION" : set(""), "DESCRIPTION" : set(""),
"VERSION" : set("0.0.0"), "VERSION" : set("0.0.0"),
"NAME" : set("no-name"), # name of the application "NAME" : set("no-name"), # name of the application
"ANDROID_MANIFEST" : set(""), # By default generate the manifest
"ANDROID_JAVA_FILES" : ["DEFAULT"], # when user want to create his own services and activities
"ANDROID_RESOURCES" : [],
"RIGHT" : [] "RIGHT" : []
} }
@ -611,11 +614,20 @@ class module:
self.packageProp[variable] = value self.packageProp[variable] = value
elif "NAME" == variable: elif "NAME" == variable:
self.packageProp[variable] = value self.packageProp[variable] = value
elif "ANDROID_MANIFEST" == variable:
self.packageProp[variable] = value
elif "ANDROID_JAVA_FILES" == variable:
self.packageProp[variable] = value
elif "RIGHT" == variable:
self.packageProp[variable] = value
elif "ANDROID_RESOURCES" == variable:
self.packageProp[variable] = value
else: else:
debug.error("not know pak element : '" + variable + "'") debug.error("not know pak element : '" + variable + "'")
def pkgAddRight(self, value): def pkgAdd(self, variable, value):
self.packageProp["RIGHT"].append(value) # TODO : Check values...
self.packageProp[variable].append(value)

View File

@ -125,6 +125,11 @@ class Target(lutinTarget.Target):
lutinTools.CopyFile(pkgProperties["ICON"], self.GetStagingFolder(pkgName) + "/res/drawable/icon.png", True) lutinTools.CopyFile(pkgProperties["ICON"], self.GetStagingFolder(pkgName) + "/res/drawable/icon.png", True)
if (pkgProperties["ANDROID_MANIFEST"]!=""):
debug.printElement("pkg", "AndroidManifest.xml", "<==", pkgProperties["ANDROID_MANIFEST"])
lutinTools.CopyFile(pkgProperties["ANDROID_MANIFEST"], self.GetStagingFolder(pkgName) + "/AndroidManifest.xml", True)
else:
debug.printElement("pkg", "AndroidManifest.xml", "<==", "package configurations") debug.printElement("pkg", "AndroidManifest.xml", "<==", "package configurations")
tmpFile = open(self.GetStagingFolder(pkgName) + "/AndroidManifest.xml", 'w') tmpFile = open(self.GetStagingFolder(pkgName) + "/AndroidManifest.xml", 'w')
tmpFile.write( "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n") tmpFile.write( "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
@ -192,6 +197,14 @@ class Target(lutinTarget.Target):
tmpFile.write( "</manifest>\n\n") tmpFile.write( "</manifest>\n\n")
tmpFile.flush() tmpFile.flush()
tmpFile.close() tmpFile.close()
# end generating android manifest
#copy needed resources :
for res_source, res_dest in pkgProperties["ANDROID_RESOURCES"]:
if res_source == "":
continue
lutinTools.CopyFile(res_source , self.GetStagingFolder(pkgName) + "/res/" + res_dest + "/" + os.path.basename(res_source), True)
# Doc : # Doc :
# http://asantoso.wordpress.com/2009/09/15/how-to-build-android-application-package-apk-from-the-command-line-using-the-sdk-tools-continuously-integrated-using-cruisecontrol/ # http://asantoso.wordpress.com/2009/09/15/how-to-build-android-application-package-apk-from-the-command-line-using-the-sdk-tools-continuously-integrated-using-cruisecontrol/
@ -211,16 +224,26 @@ class Target(lutinTarget.Target):
debug.printElement("pkg", "*.class", "<==", "*.java") debug.printElement("pkg", "*.class", "<==", "*.java")
# more information with : -Xlint # more information with : -Xlint
# + self.file_finalAbstraction + " "\ # this generate ex: out/Android/debug/staging/tethys/src/com/edouarddupin/tethys/edn.java # + self.file_finalAbstraction + " "\ # this generate ex: out/Android/debug/staging/tethys/src/com/edouarddupin/tethys/edn.java
#generate android java files:
filesString=""
for element in pkgProperties["ANDROID_JAVA_FILES"]:
if element=="DEFAULT":
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolAudioTask.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolCallback.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolConstants.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/Ewol.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolRendererGL.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolSurfaceViewGL.java "
filesString += self.folder_ewol + "/sources/android/src/org/ewol/EwolActivity.java "
else:
filesString += element + " "
cmdLine = "javac " \ cmdLine = "javac " \
+ "-d " + self.GetStagingFolder(pkgName) + "/build/classes " \ + "-d " + self.GetStagingFolder(pkgName) + "/build/classes " \
+ "-classpath " + self.folder_sdk + "/platforms/android-" + str(self.boardId) + "/android.jar " \ + "-classpath " + self.folder_sdk + "/platforms/android-" + str(self.boardId) + "/android.jar " \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolAudioTask.java " \ + filesString \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolCallback.java " \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolConstants.java " \
+ self.folder_ewol + "/sources/android/src/org/ewol/Ewol.java " \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolRendererGL.java " \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolSurfaceViewGL.java " \
+ self.folder_ewol + "/sources/android/src/org/ewol/EwolActivity.java " \
+ self.file_finalAbstraction + " " \ + self.file_finalAbstraction + " " \
+ self.GetStagingFolder(pkgName) + "/src/R.java " + self.GetStagingFolder(pkgName) + "/src/R.java "
lutinMultiprocess.RunCommand(cmdLine) lutinMultiprocess.RunCommand(cmdLine)