build system updates, for mobile builds

- main build.py will optionally build mobile. removed now obsolete mobile build scripts and symbolic links
- external resource URL is now optional - it's no longer needed by the regular builds
This commit is contained in:
Jon Atkins 2013-03-30 20:48:59 +00:00
parent 270905c83a
commit 60444c9169
5 changed files with 48 additions and 17 deletions

View File

@ -8,6 +8,7 @@ import base64
import sys
import os
import shutil
import subprocess
# load settings file
@ -49,9 +50,9 @@ buildDate = time.strftime('%Y-%m-%d-%H%M%S',utcTime)
dateTimeVersion = time.strftime('%Y%m%d.%H%M%S',utcTime)
# extract required values from the settings entry
resourceUrlBase = settings['resourceUrlBase']
distUrlBase = settings['distUrlBase']
resourceUrlBase = settings.get('resourceUrlBase')
distUrlBase = settings.get('distUrlBase')
buildMobile = settings.get('buildMobile')
def readfile(fn):
@ -90,7 +91,13 @@ def doReplacements(script,updateUrl,downloadUrl):
script = script.replace('@@BUILDDATE@@', buildDate)
script = script.replace('@@DATETIMEVERSION@@', dateTimeVersion)
if resourceUrlBase:
script = script.replace('@@RESOURCEURLBASE@@', resourceUrlBase)
else:
if '@@RESOURCEURLBASE@@' in script:
raise Exception("Error: '@@RESOURCEURLBASE@@' found in script, but no replacement defined")
script = script.replace('@@BUILDNAME@@', buildName)
script = script.replace('@@UPDATEURL@@', updateUrl)
@ -151,4 +158,28 @@ for fn in glob.glob("plugins/*.user.js"):
saveScriptAndMeta(script, os.path.join(outDir,fn), os.path.join(outDir,metafn))
# if we're building mobile too
if buildMobile:
if buildMobile not in ['debug','release']:
raise Exception("Error: buildMobile must be 'debug' or 'release'")
# first, copy the IITC script into the mobile folder. create the folder if needed
try:
os.makedirs("mobile/assets")
except:
pass
shutil.copy(os.path.join(outDir,"total-conversion-build.user.js"), "mobile/assets/iitc.js")
# TODO? also copy plugins - once the mobile app supports plugins, that is
# now launch 'ant' to build the mobile project
retcode = subprocess.call(["ant", "-buildfile", "mobile/build.xml", buildMobile])
if retcode != 0:
print ("Error: mobile app failed to build. ant returned %d" % retcode)
else:
shutil.copy("mobile/bin/IITC_Mobile-%s.apk" % buildMobile, os.path.join(outDir,"IITC_Mobile-%s.apk" % buildMobile) )
# vim: ai si ts=4 sw=4 sts=4 et

View File

@ -4,19 +4,29 @@
buildSettings = {
# local: use this build if you're not modifying external resources
# external resources will be loaded from the public live release
# no external resources allowed - they're not needed any more
'local': {
'resourceUrlBase': 'http://iitc.jonatkins.com/release',
'resourceUrlBase': None,
'distUrlBase': None,
},
# local8000: if you need to modify external resources, this build will load them from
# the web server at http://0.0.0.0:8000/dist
# (This shouldn't be required any more - all resources are embedded. but, it remains just in case some new feature
# needs external resources)
'local8000': {
'resourceUrlBase': 'http://0.0.0.0:8000/dist',
'distUrlBase': None,
},
# mobile: default entry that also builds the mobile .apk
# you will need to have the android-sdk installed, and the file mobile/local.properties created as required
'mobile': {
'resourceUrlBase': None,
'distUrlBase': None,
'buildMobile': 'debug',
},
# if you want to publish your own fork of the project, and host it on your own web site
# create a localbuildsettings.py file containing something similar to this

1
mobile/.gitignore vendored
View File

@ -6,3 +6,4 @@ gen/
libs/
proguard-project.txt
local.properties
assets/iitc.js

View File

@ -1 +0,0 @@
../../build/local8000/total-conversion-build.user.js

View File

@ -1,10 +0,0 @@
#!/bin/sh
set -e
cd `dirname "$0"`
cd ..
./build.py local8000
cd build/local8000
cd ../../mobile
ant debug