# # Native file dialog # # Build tests target_arch=str(Platform()) debug = int(ARGUMENTS.get( 'debug', 0 )) files = {'test_opendialog': ['test_opendialog.c'], 'test_opendialogmultiple': ['test_opendialogmultiple.c'], 'test_savedialog': ['test_savedialog.c']} test_env = Environment() # Windows runtime library types win_rtl = {'debug': '/MDd', 'release': '/MD'} def set_debug(env): if target_arch == 'win32': env.Append( CFLAGS=['/Z7', # obj contains full symbols win_rtl['debug'] ] ) else: env.Append( CFLAGS=['-g'] ) def set_release(env): if target_arch == 'win32': env.Append( CFLAGS=[win_rtl['release'], '/O2', ]) else: env.Append( CFLAGS=['-O3'] ) def get_lib_name(base, is_debug): if is_debug: return base + '_d' else: return base if debug: set_debug(test_env) else: set_release(test_env) test_env.Append( CPPPATH=['../src/include'], # API header path only, no internals allowed LIBPATH=['../src'], LIBS=get_lib_name('nfd', debug) ) # Cocoa OS X builds if target_arch == 'darwin': test_env.Append( FRAMEWORKS='AppKit' ) test_env.CC='clang -fcolor-diagnostics' # Linux GTK+ 3 builds elif target_arch == 'posix': test_env.ParseConfig( 'pkg-config --cflags --libs gtk+-3.0' ) elif target_arch == 'win32': test_env.Append( LINKFLAGS=['/NODEFAULTLIB:LIBCMT']) for codebase in files: output_name = get_lib_name(codebase, debug) test_env.Program( output_name, files[codebase] )