#!/usr/bin/python3

import os,sys,math
import subprocess
import shutil
from shutil import copytree

from amsbuildlib4 import *

libname = "amscppnarray.linux64" #static library name to generate
binname = "tests" #create this executable when compiling main.c or main.cpp
commondir = "../../linux64" #common directory to pul libraries and includes from
installdir = "../../linux64" #directory to install to when finished
builddir = "./build_linux64"

doinstall = True   #copies the build_output to the install dir when finished
cc = "g++" #compiler
cflags = "-fPIC"
libraries = "-l{} -lamsmathutil2.linux64".format(libname)
libdirs = "-L{} -L{}/lib".format(builddir,commondir)
linkerflags = "-static -static-libgcc -Wl,-rpath=."
srcexts = [".c",".cpp"]
binsrc = ["main.c","main.cpp"] #ignore these files when compiling the static library

#keyword list to control the compilers/linkers
kwargs = dict()
include = "-I./include -I{}/include".format(commondir)
kwargs["include"] = include
kwargs["flags"] = cflags
kwargs["libdir"] = libdirs
kwargs["libflags"] = libraries
kwargs["linkerflags"] = linkerflags
kwargs["recurse"] = True
kwargs["objstore"] = "{}/objstore".format(builddir)
kwargs["searchincdirs"] = "./include"

#Pull required binary dynamic libraries to the bin folder
#shutil.copy('{}/lib/libcamsimg3.linux64.so'.format(commondir),builddir);
#shutil.copy('{}/lib/libamsimg.dll'.format(commondir),builddir);
#shutil.copy('{}/lib/glew32.dll','./bin_winx64');

#Designate source files for main test program
fsrc = ['./src/main.cpp']
fobj = replaceexts(fsrc,'.o')

#Compile test programs
gs_compile_list(cc,fsrc,**kwargs)
gs_link_list(cc,list_to_sss(fobj),'{}/{}'.format(builddir,binname),**kwargs)
