Home | History | Annotate | Download | only in scripts
      1 #!/usr/bin/python
      2 
      3 import os
      4 import sys
      5 import shutil
      6 
      7 ScriptHome = os.path.split(sys.argv[0])[0]
      8 ConfFile = open(os.path.join(ScriptHome, "camera_build.conf"), "rt")
      9 HomeDir = os.getcwd()
     10 
     11 stub = os.environ.get("ANDROID_STUB_ROOT", "")
     12 
     13 if (stub == ""):
     14     print("Warning: ANDROID_STUB_ROOT environment variable is not set or is empty")
     15 
     16 for s in ConfFile.readlines():
     17     s = s[0:s.find("#")]
     18     if (not s):
     19         continue
     20     keys = s.split(";")
     21     if (len(keys) < 4):
     22         print("Error: invalid config line: \"%s\"" % s)
     23         continue
     24     MakeTarget = str.strip(keys[0])
     25     Arch = str.strip(keys[1])
     26     NativeApiLevel = str.strip(keys[2])
     27     AndroidTreeRoot = str.strip(keys[3])
     28     AndroidTreeRoot = str.strip(AndroidTreeRoot, "\n")
     29     AndroidTreeRoot = os.path.expandvars(AndroidTreeRoot)
     30     print("Building %s for %s" % (MakeTarget, Arch))
     31     BuildDir = os.path.join(HomeDir, MakeTarget + "_" + Arch)
     32 
     33     if (os.path.exists(BuildDir)):
     34         shutil.rmtree(BuildDir)
     35 
     36     try:
     37         os.mkdir(BuildDir)
     38     except:
     39         print("Error: cannot create direcotry \"%s\"" % BuildDir)
     40         continue
     41 
     42     shutil.rmtree(os.path.join(AndroidTreeRoot, "out", "target", "product", "generic", "system"), ignore_errors=True)
     43 
     44     LinkerLibs = os.path.join(AndroidTreeRoot, "bin_arm", "system")
     45     if (Arch == "x86"):
     46         LinkerLibs = os.path.join(AndroidTreeRoot, "bin_x86", "system")
     47     elif (Arch == "mips"):
     48         LinkerLibs = os.path.join(AndroidTreeRoot, "bin_mips", "system")
     49 
     50     if (not os.path.exists(LinkerLibs)):
     51         print("Error: Paltform libs for linker in path \"%s\" not found" % LinkerLibs)
     52         print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch))
     53         continue
     54 
     55     shutil.copytree(LinkerLibs, os.path.join(AndroidTreeRoot, "out", "target", "product", "generic", "system"))
     56 
     57     os.chdir(BuildDir)
     58     BuildLog = os.path.join(BuildDir, "build.log")
     59     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)
     60     MakeCmdLine = "make %s >> \"%s\" 2>&1" % (MakeTarget, BuildLog);
     61     #print(CmakeCmdLine)
     62     os.system(CmakeCmdLine)
     63     #print(MakeCmdLine)
     64     os.system(MakeCmdLine)
     65     os.chdir(HomeDir)
     66     CameraLib = os.path.join(BuildDir, "lib", Arch, "lib" + MakeTarget + ".so")
     67     if (os.path.exists(CameraLib)):
     68         try:
     69             shutil.copyfile(CameraLib, os.path.join("..", "3rdparty", "lib", Arch, "lib" + MakeTarget + ".so"))
     70             print("Building %s for %s\t[\033[92mOK\033[0m]" % (MakeTarget, Arch));
     71         except:
     72             print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch));
     73     else:
     74         print("Building %s for %s\t[\033[91mFAILED\033[0m]" % (MakeTarget, Arch));
     75 
     76 ConfFile.close()
     77