|
|
- #
- # Native File Dialog
- #
- # Scons build script -- GCC, Clang, Visual Studio
- # Does not build test
-
-
- import os
-
-
- # target arch is build arch -- extend here for OS cross compiling
- target_os=str(Platform())
-
- # Corresponds to TARGET_ARCH set to environ.
- target_arch = ARGUMENTS.get('target_arch', None)
-
- # visual studio does not import from environment
- if target_os != 'win32':
- IMPORT_FROM_ENV =['CC', 'CXX', 'CFLAGS', 'CXXFLAGS', 'ARFLAGS']
- else:
- IMPORT_FROM_ENV =[]
-
-
- debug = int(ARGUMENTS.get( 'debug', 0 ))
-
- nfd_files = ['nfd_common.c']
-
- # Due to a Scons limitation, TARGET_ARCH cannot be appended to an existing environment.
- if target_arch != None:
- nfd_env = Environment( TARGET_ARCH=target_arch )
- else:
- nfd_env = Environment()
-
- # import specific environment variables from the command line, overriding
- # Scons environment defaults
- for env_key in IMPORT_FROM_ENV:
- if env_key in os.environ:
- print "Making %s => %s" % ( env_key, os.environ[env_key] )
- nfd_env[env_key] = os.environ[env_key]
-
- # Windows runtime library types
- win_rtl = {'debug': '/MDd',
- 'release': '/MD'}
-
- def set_debug(env):
- if target_os == 'win32':
- env.Append( CCFLAGS=['/Z7', # obj contains full symbols
- win_rtl['debug']
- ])
- else:
- env.Append( CFLAGS=['-g'] )
-
-
- def set_release(env):
- if target_os == 'win32':
- env.Append( CCFLAGS=[win_rtl['release'],
- '/O2'] )
- else:
- env.Append( CFLAGS=['-O3'] )
-
-
- def set_warnings(env):
- if target_os == 'win32':
- env.Append( CCFLAGS=['/W3'],
- CPPDEFINES=['_CRT_SECURE_NO_WARNINGS'] )
- else:
- env.Append( CFLAGS=['-Wall', '-pedantic'] )
-
-
- def get_lib_name(base, is_debug):
- if is_debug:
- return base + '_d'
- else:
- return base
-
-
- # Cocoa OS X builds - clang
- if target_os == 'darwin':
- nfd_files.append('nfd_cocoa.m')
- nfd_env.CC='clang -fcolor-diagnostics'
-
- # Linux GTK+ 3 builds - GCC
- elif target_os == 'posix':
- nfd_files.append('nfd_gtk.c')
- nfd_env.ParseConfig( 'pkg-config --cflags gtk+-3.0' )
-
- # Windows builds - Visual Studio
- elif target_os == 'win32':
- nfd_files.append('nfd_win.cpp')
-
- if debug:
- set_debug(nfd_env)
- else:
- set_release(nfd_env)
-
- set_warnings(nfd_env)
-
- nfd_env.Append( CPPPATH=['.','./include'] )
- nfd_env.StaticLibrary( get_lib_name('nfd', debug), nfd_files )
|