|
|
|
#!/usr/bin/python
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import shutil
|
|
|
|
|
|
|
|
ScriptHome = os.path.split(sys.argv[0])[0]
|
|
|
|
ConfFile = open(os.path.join(ScriptHome, "camera_build.conf"), "rt")
|
|
|
|
HomeDir = os.getcwd()
|
|
|
|
|
|
|
|
stub = os.environ.get("ANDROID_STUB_ROOT", "")
|
|
|
|
|
|
|
|
if (stub == ""):
|
|
|
|
print("Warning: ANDROID_STUB_ROOT environment variable is not set or is empty")
|
|
|
|
|
|
|
|
for s in ConfFile.readlines():
|
|
|
|
s = s[0:s.find("#")]
|
|
|
|
if (not s):
|
|
|
|
continue
|
|
|
|
keys = s.split(";")
|
|
|
|
if (len(keys) < 4):
|
|
|
|
print("Error: invalid config line: \"%s\"" % s)
|
|
|
|
continue
|
|
|
|
MakeTarget = str.strip(keys[0])
|
|
|
|
Arch = str.strip(keys[1])
|
|
|
|
NativeApiLevel = str.strip(keys[2])
|
|
|
|
AndroidTreeRoot = str.strip(keys[3])
|
|
|
|
AndroidTreeRoot = str.strip(AndroidTreeRoot, "\n")
|
|
|
|
AndroidTreeRoot = os.path.expandvars(AndroidTreeRoot)
|
|
|
|
print("Building %s for %s" % (MakeTarget, Arch))
|
|
|
|
BuildDir = os.path.join(HomeDir, MakeTarget + "_" + Arch)
|
|
|
|
|
|
|
|
if (os.path.exists(BuildDir)):
|
|
|
|
shutil.rmtree(BuildDir)
|
|
|
|
|
|
|
|
try:
|
|
|
|
os.mkdir(BuildDir)
|
|
|
|
except:
|
|
|
|
print("Error: cannot create direcotry \"%s\"" % BuildDir)
|
|
|
|
continue
|
|
|
|
|
|
|
|
shutil.rmtree(os.path.join(AndroidTreeRoot, "out", "target", "product", "generic", "system"), ignore_errors=True)
|
|
|
|
|
|
|
|
LinkerLibs = os.path.join(AndroidTreeRoot, "bin_arm", "system")
|
|
|
|
if (Arch == "x86"):
|
|
|
|
LinkerLibs = os.path.join(AndroidTreeRoot, "bin_x86", "system")
|
|
|
|
elif (Arch == "mips"):
|
|
|
|
LinkerLibs = os.path.join(AndroidTreeRoot, "bin_mips", "system")
|
|
|
|
|
|
|
|
if (not os.path.exists(LinkerLibs)):
|
|
|
|
print("Error: Paltform libs for linker in path \"%s\" not found" % LinkerLibs)
|
|
|
|
print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch))
|
|
|
|
continue
|
|
|
|
|
|
|
|
shutil.copytree(LinkerLibs, os.path.join(AndroidTreeRoot, "out", "target", "product", "generic", "system"))
|
|
|
|
|
|
|
|
os.chdir(BuildDir)
|
|
|
|
BuildLog = os.path.join(BuildDir, "build.log")
|
|
|
|
CmakeCmdLine = "cmake -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake -DANDROID_SOURCE_TREE=\"%s\" -DANDROID_NATIVE_API_LEVEL=\"%s\" -DANDROID_ABI=\"%s\" -DANDROID_STL=stlport_static ../.. > \"%s\" 2>&1" % (AndroidTreeRoot, NativeApiLevel, Arch, BuildLog)
|
|
|
|
MakeCmdLine = "make %s >> \"%s\" 2>&1" % (MakeTarget, BuildLog);
|
|
|
|
#print(CmakeCmdLine)
|
|
|
|
os.system(CmakeCmdLine)
|
|
|
|
#print(MakeCmdLine)
|
|
|
|
os.system(MakeCmdLine)
|
|
|
|
os.chdir(HomeDir)
|
|
|
|
CameraLib = os.path.join(BuildDir, "lib", Arch, "lib" + MakeTarget + ".so")
|
|
|
|
if (os.path.exists(CameraLib)):
|
|
|
|
try:
|
|
|
|
shutil.copyfile(CameraLib, os.path.join("..", "3rdparty", "lib", Arch, "lib" + MakeTarget + ".so"))
|
|
|
|
print("Building %s for %s\t[\033[92mOK\033[0m]" % (MakeTarget, Arch));
|
|
|
|
except:
|
|
|
|
print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch));
|
|
|
|
else:
|
|
|
|
print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch));
|
|
|
|
|
|
|
|
ConfFile.close()
|