wscript (4510B)
1 # -*- mode: python -*- 2 3 # libshit 'config' 4 APPNAME='neptools' 5 BOOST_LIBS = ['system', 'filesystem'] 6 DEFAULT_LUA = 'lua' 7 8 def options(opt): 9 opt.recurse('libshit', name='options') 10 11 def configure(cfg): 12 cfg.recurse('libshit', name='configure', once=False) 13 14 if cfg.env.DEST_OS == 'vita': 15 cfg.check_cxx(lib='taihen_stub', uselib_store='TAIHEN') 16 17 def build(bld): 18 bld.recurse('libshit') 19 20 bld.gen_version_hpp('src/version.hpp') 21 22 src = [ 23 'src/dumpable.cpp', 24 'src/endian.cpp', 25 'src/open.cpp', 26 'src/pattern.cpp', 27 'src/sink.cpp', 28 'src/source.cpp', 29 'src/utils.cpp', 30 'src/format/cl3.cpp', 31 'src/format/context.cpp', 32 'src/format/cstring_item.cpp', 33 'src/format/eof_item.cpp', 34 'src/format/gbnl.cpp', 35 'src/format/item.cpp', 36 'src/format/primitive_item.cpp', 37 'src/format/raw_item.cpp', 38 'src/format/stcm/collection_link.cpp', 39 'src/format/stcm/data.cpp', 40 'src/format/stcm/expansion.cpp', 41 'src/format/stcm/exports.cpp', 42 'src/format/stcm/file.cpp', 43 'src/format/stcm/gbnl.cpp', 44 'src/format/stcm/header.cpp', 45 'src/format/stcm/instruction.cpp', 46 'src/format/stcm/string_data.cpp', 47 ] 48 if bld.env.WITH_LUA != 'none': 49 src += [ 50 'src/txt_serializable.cpp', 51 'src/format/builder.lua', 52 ] 53 if bld.env.WITH_TESTS: 54 src += [ 'test/pattern.cpp' ] 55 56 bld.objects(source = src, 57 uselib = 'NEPTOOLS', 58 use = 'libshit boost_system boost_filesystem', 59 includes = 'src', 60 target = 'common') 61 62 src = [ 63 'src/format/stsc/file.cpp', 64 'src/format/stsc/header.cpp', 65 'src/format/stsc/instruction.cpp', 66 ] 67 bld.objects(source = src, 68 uselib = 'NEPTOOLS', 69 use = 'libshit boost_system boost_filesystem', 70 includes = 'src', 71 target = 'common-stsc') 72 73 if bld.env.DEST_OS == 'vita': 74 src = [ 75 'src/vita_plugin/cpk.cpp', 76 'src/vita_plugin/plugin.cpp', 77 ] 78 bld.program(source = src, 79 includes = 'src', # for version.hpp 80 ldflags = '-lSceAppMgr_stub', 81 uselib = 'NEPTOOLS TAIHEN', 82 use = 'common', 83 target = 'vita_plugin') 84 else: 85 bld.program(source = ['src/programs/stcm-editor.cpp', 86 'src/programs/stcm-editor.rc'], 87 includes = 'src', # for version.hpp 88 uselib = 'NEPTOOLS WINDOWS_CLI', 89 use = 'common common-stsc', 90 target = 'stcm-editor') 91 92 if bld.env.DEST_OS == 'win32' and bld.env.DEST_CPU == 'x86': 93 # technically launcher can be compiled for 64bits, but it makes no sense 94 ld = ['-Wl,/nodefaultlib', '-Wl,/entry:start', 95 '-Wl,/FIXED', '-Wl,/NXCOMPAT:NO', '-Wl,/IGNORE:4254'] 96 bld.program(source = 'src/programs/launcher.c src/programs/launcher.rc', 97 includes = 'src', # for version.hpp 98 target = 'launcher', 99 cflags = '-Os -mstack-probe-size=999999999 -fno-stack-protector', 100 uselib = 'KERNEL32 SHELL32 USER32 NEPTOOLS WINDOWS_GUI', 101 linkflags = ld) 102 103 src_inject = [ 104 'src/windows_server/cpk.cpp', 105 'src/windows_server/hook.cpp', 106 'src/windows_server/server.cpp', 107 'src/windows_server/server.rc', 108 ] 109 bld.shlib(source = src_inject, 110 includes = 'src', # for version.hpp 111 target = 'neptools-server', 112 use = 'common', 113 uselib = 'SHELL32 USER32 NEPTOOLS', 114 defs = 'src/windows_server/server.def') 115 116 if bld.env.WITH_TESTS: 117 # test pattern parser 118 bld(features='cxx', 119 source='test/pattern_fail.cpp', 120 uselib='BOOST NEPTOOLS', 121 use='boost_system boost_filesystem libshit', 122 includes='src', 123 defines=['TEST_PATTERN="b2 ff"']) 124 bld(features='cxx fail_cxx', 125 source='test/pattern_fail.cpp', 126 uselib='BOOST NEPTOOLS', 127 use='boost_system boost_filesystem libshit', 128 includes='src', 129 defines=['TEST_PATTERN="bz ff"'])