Making some of my library code public.
This commit is contained in:
45
compscripts/old/msvc.makelib.py
Normal file
45
compscripts/old/msvc.makelib.py
Normal file
@ -0,0 +1,45 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import os,sys,subprocess,math
|
||||
from complib2 import *
|
||||
|
||||
import shutil
|
||||
from shutil import copytree as copytree
|
||||
|
||||
libname = 'assetcuda.msvc64' #prefix static library name to generate
|
||||
targetname = 'main' #create this executable when compiling tests
|
||||
commonincdir = "../../winx64/include"
|
||||
commonlibdir = "../../winx64/lib"
|
||||
localbindir = "./bin_winx64"
|
||||
cc = 'nvcc' #compiler
|
||||
srcexts = ['.c','.cpp']
|
||||
mainsrc = ['main.c','main.cpp','main.cu'] #ignore these files when compiling the static library
|
||||
|
||||
kwargs = dict()
|
||||
include = "-I./include -I{}".format(commonincdir)
|
||||
kwargs['include'] = include
|
||||
kwargs['flags'] = "/O2"
|
||||
kwargs['libdir'] = "/LIBPATH:{} /LIBPATH:{}".format(localbindir,commonlibdir)
|
||||
kwargs['libflags'] = "-l{}".format(libname)
|
||||
kwargs['linkerflags'] = ""
|
||||
kwargs['recurse'] = True
|
||||
|
||||
#find all source files, except the main project files
|
||||
files = flist('./src',exts = srcexts, recurse=True)
|
||||
files = except_contains(files,mainsrc)
|
||||
objfiles = replaceexts(files,'.obj')
|
||||
objfiles_sss = list_to_sss(objfiles)
|
||||
|
||||
#compile all the source files in the list
|
||||
msvc_compile_list(cc,files,**kwargs)
|
||||
#gs_compile_list(cc,files,**kwargs)
|
||||
|
||||
#archive all the source files into a static library
|
||||
#ar_list(objfiles,'{}/lib{}.a'.format(localbindir,libname))
|
||||
msvc_lib_list(objfiles,'{}/lib{}.lib'.format(localbindir,libname))
|
||||
|
||||
#Push any libraries to the common lib folder
|
||||
shutil.copy('{}/lib{}.lib'.format(localbindir,libname),commonlibdir)
|
||||
|
||||
#Copy include files to the common include folder
|
||||
copytree('./include/',commonincdir+'/',dirs_exist_ok=True)
|
||||
Reference in New Issue
Block a user