| # | |
| # 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] ) |