mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.9 KiB
76 lines
2.9 KiB
#!/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()
|
|
|