neptools

Modding tools to Neptunia games
git clone https://git.neptards.moe/neptards/neptools.git
Log | Files | Refs | Submodules | README | LICENSE

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"'])