diff --git a/SConstruct b/SConstruct index d603181e707d75cd9983eaeb33a6054b60dbe02b..451cc35b2d06a7ed7d15e8793984e2a1198edcd4 100644 --- a/SConstruct +++ b/SConstruct @@ -16,16 +16,15 @@ DETECT_JOBS = 'yes' #Set this to no, if you are setting JOBS!! DEBUG ='no' TUNE ='yes' CFFLAGS_EXTRA_WARNING ='no' +PYWRAP = True # set to False if you do not want to build the python wrapper - -#Setting up a basic default environment -#Theory is it can be expanded for versatility, like swig doesn't seem to like jobs of 4 -#env = Environment(ENV = os.environ) +# Setting up a basic default environment +# Theory is it can be expanded for versatility, like swig doesn't seem to like jobs of 4 env = Environment(ENV = os.environ) -#OLD detect platform +# detect platform if sys.platform == 'linux2' or sys.platform == 'linux-i386': OS = 'linux' python_lib = ['python%d.%d' % sys.version_info[0:2]] @@ -33,7 +32,7 @@ if sys.platform == 'linux2' or sys.platform == 'linux-i386': python_include = [sysconfig.get_python_inc ()] env.Append(CCFLAGS = ' -Iinclude -fPIC -Wall -pipe') elif sys.platform == 'cygwin': - OS = 'linux' # not tested + OS = 'linux' python_lib = ['python%d.%d' % sys.version_info[0:2]] python_libpath = [sysconfig.get_python_lib (0, 1) + '/config'] python_include = [sysconfig.get_python_inc ()] @@ -101,15 +100,15 @@ env.SetOption('num_jobs', JOBS) # detect SWIG -#try: -# env['SWIG'] -#except KeyError: -# print """ -#Error: SWIG not found. -#Please install SWIG, it's needed to create the python wrapper. -#You can get it from http://www.swig.org/""" -# if sys.platform == "win32": print "Also don't forget to add the SWIG #directory to your %PATH%." -# Exit(1) +try: + env['SWIG'] +except KeyError: + PYWRAP = False + print """ +Warning: SWIG not found. The python wrapper will not be built. +Please install SWIG to build the python wrapper.""" + if sys.platform == "win32": print "Also add the SWIG directory to your %PATH%." + print "You can download SWIG from http://www.swig.org/\n" gen_objfiles = Split(""" @@ -396,14 +395,14 @@ nif_converter = Split(""" blender/blender_niflib.cpp """) +# build niflib shared library niflib = env.SharedLibrary('niflib', [core_objfiles, gen_objfiles, obj_objfiles, NvTriStrip_files, TriStripper_files], LIBPATH=['.'], CPPPATH = '.') - -## -nifshlib = env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, SHLIBPREFIX='') -# makes sure niflib.lib is built before trying to build _niflib.dll -env.Depends(nifshlib, niflib) - +# build Python wrapper +if PYWRAP: + niflib_python = env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, SHLIBPREFIX='') + # makes sure niflib.dll is built before trying to build _niflib.dll + env.Depends(niflib_python, niflib) # Here's how to compile niflyze: #env.Program('niflyze', 'niflyze.cpp', LIBS=['niflib'], LIBPATH=['.'])