#!/usr/bin/python3 import os,sys,math import subprocess import shutil from shutil import copytree from amsbuildlib4 import * libname = "amscpptemplate25a.msvc64" #static library name to generate binname = "tests.exe" #create this executable when compiling main.c or main.cpp commondir = "../../winx64" #common directory to pul libraries and includes from depdir = "./dependencies/winx64" #local pre-compiled dependency libraries and their includes installdir = "../../winx64" #directory to install to when finished builddir = "./build_msvc64" doinstall = False #copies the build_output to the install dir when finished cc = "cl" #compiler cflags = "/O2" libraries = "lib{}.lib".format(libname) libdirs = "/LIBPATH:{} /LIBPATH:{}/lib /LIBPATH:{}/lib".format(builddir,commondir,depdir) linkerflags = "" 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 -I{}/include".format(commondir, depdir) 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,'.obj') #Compile test programs msvc_compile_list(cc,fsrc,**kwargs) msvc_link_list(list_to_sss(fobj),'{}/{}'.format(builddir,binname),**kwargs)