mirror of
https://github.com/YutaItoh/3D-Eye-Tracker.git
synced 2025-09-26 23:09:19 +08:00
75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
# HOW TO BUILD (A) LIBRAR-Y/IES FROM A MODULE
|
|
# Building libraries from modules should be consistent for each module.
|
|
# Use the following scheme for each new library created:
|
|
#
|
|
# a) Check for required libraries. If they are not available return False and export flags if needed
|
|
# b) Define the src-subdirectories for which the library should be compiled
|
|
# and glob all files in there
|
|
# c) Define a [LIBRARY]_options variable for the library containing all dependencies
|
|
# from other libraries. Create a clone from the master environment and add those options.
|
|
# d) WINDOWS ONLY: Create a header file which implements dll interface functionality
|
|
# dependent from a [LIBRARY]_DLL define. If the define is set, the dll should be exported,
|
|
# if not, the dll should be imported. Set the define in the preprocessor options for the environment.
|
|
# e) Build the library!
|
|
# f) Remove all entries for (at least) the LIBS and LIBPATH keys in the options and
|
|
# add only the newly-compiled library as a dependcy. This will avoid multiple includes
|
|
# of libraries. Also verify that the import/export-switch define is not set.
|
|
# g) Export the options so that other libraries can base on this library
|
|
# h) Optionally setup help and ide projects
|
|
#
|
|
# The use of options and possibility to export them makes hierarchical build environments
|
|
# obsolete. Avoid exporting new environments to the build system.
|
|
|
|
import glob
|
|
import os.path
|
|
import sys
|
|
|
|
have_utvision = False
|
|
|
|
Import( '*' )
|
|
|
|
# a)
|
|
if not (sys.platform == "win32" and have_utvision):
|
|
print "utVision missing or not on ms windows -- not building DirectShowFrameGrabber"
|
|
result = False
|
|
Return ('result')
|
|
|
|
|
|
|
|
# b)
|
|
headers = globSourceFiles( '*.h' )
|
|
sources = globSourceFiles( '*.cpp' )
|
|
sources += globSourceFiles( '*.c' )
|
|
|
|
if have_directshow:
|
|
for src in [ 'DirectShowInterfaces_i.c' ]:
|
|
sources.remove( src );
|
|
|
|
# c)
|
|
framegrabber_options = mergeOptions(utvision_all_options, utdataflow_all_options, directshow_options)
|
|
env = masterEnv.Clone()
|
|
env.AppendUnique( **framegrabber_options )
|
|
|
|
if have_directshow:
|
|
env.AppendUnique(directshow_options)
|
|
env.Append( CPPDEFINES = [ 'HAVE_DIRECTSHOW'] )
|
|
|
|
env.AppendUnique( LIBS = [ "ole32", "oleaut32" ] )
|
|
|
|
# d)
|
|
# library is component, nothing to export
|
|
|
|
# e)
|
|
# compile all source files into single library
|
|
# {buildenvironment, source files, name of the library, build target}
|
|
setupSingleComponentBuild(env, sources, "DirectShowFrameGrabber", "DirectShowFrameGrabber")
|
|
|
|
# f)
|
|
# nothing to do this time
|
|
|
|
# g)
|
|
# nothing to do this time
|
|
|
|
# h)
|
|
createVisualStudioProject(env, sources, headers, "DirectShowFrameGrabber")
|