77 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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()
 | 
