scraps

Abandon all hope, ye who enter here.
git clone https://git.neptards.moe/neptards/scraps.git
Log | Files | Refs | Submodules | README | LICENSE

wscript (7026B)


      1 # -*- mode: python -*-
      2 
      3 # idx map:
      4 #  10xx scraps
      5 # 100xx zlib
      6 # 101xx tinyxml
      7 # 102xx mujs
      8 # 5xxxx libshit
      9 
     10 APPNAME='scraps'
     11 LIBSHIT_CROSS=False
     12 
     13 def options(opt):
     14     grp = opt.get_option_group('configure options')
     15 
     16     opt.recurse('libshit', name='options')
     17     opt.recurse('ext', name='options')
     18 
     19 def configure(cfg):
     20     cfg.recurse('libshit', name='configure', once=False)
     21     cfg.recurse('ext', name='configure', once=False)
     22 
     23     if cfg.env.DEST_OS != 'win32':
     24         cfg.check_cxx(lib='pthread')
     25 
     26 def build(ctx):
     27     ctx.recurse('libshit', once=False)
     28     ctx.recurse('ext', name='build', once=False)
     29 
     30     ctx.gen_version_hpp('src/scraps/version.hpp')
     31 
     32     if ctx.env.WITH_TESTS:
     33         src = [
     34             'src/scraps/format/rags_sql/test_helper/memory_db.cpp',
     35             'src/scraps/format/rags_sql/test_helper/memory_sql.cpp',
     36             'src/scraps/format/rags_sql/test_helper/sql_helper.cpp',
     37             'src/scraps/format/rags_sql/test_helper/sql_server.cpp',
     38             'test/scraps/bitfield.cpp',
     39             'test/scraps/game/id_set.cpp',
     40             'test/scraps/game/state_container.cpp',
     41         ]
     42         ctx.objects(idx      = 1002,
     43                     source   = src,
     44                     includes = 'src test',
     45                     uselib   = 'SCRAPS',
     46                     use      = 'PTHREAD libshit',
     47                     target   = 'scraps-tests')
     48 
     49     ctx.objects(idx      = 1003,
     50                 source   = [ 'src/scraps/format/rags_sql/gzip.cpp' ],
     51                 includes = 'src',
     52                 uselib   = 'SCRAPS',
     53                 use      = 'ZLIB zlib libshit',
     54                 target   = 'scraps-gzip')
     55 
     56     src = [
     57         'src/scraps/format/rags_sql/sql_importer.cpp',
     58         'src/scraps/format/rags_sql/sql_importer_action.cpp',
     59         'src/scraps/format/rags_sql/sql_importer_character.cpp',
     60         'src/scraps/format/rags_sql/sql_importer_file.cpp',
     61         'src/scraps/format/rags_sql/sql_importer_helpers.cpp',
     62         'src/scraps/format/rags_sql/sql_importer_misc.cpp',
     63         'src/scraps/format/rags_sql/sql_importer_object.cpp',
     64         'src/scraps/format/rags_sql/sql_importer_room.cpp',
     65         'src/scraps/format/rags_sql/sql_importer_timer.cpp',
     66         'src/scraps/format/rags_sql/sql_importer_variable.cpp',
     67     ]
     68     ctx.objects(idx      = 1004,
     69                 source   = src,
     70                 includes = 'src',
     71                 uselib   = 'SCRAPS',
     72                 use      = 'CAPNP TINYXML capnp libshit tinyxml',
     73                 target   = 'scraps-xml')
     74 
     75     src = [
     76         'src/scraps/game/action_eval/command_misc.cpp',
     77         'src/scraps/game/action_eval/command_variable.cpp',
     78         'src/scraps/js.cpp',
     79     ]
     80     ctx.objects(idx      = 1005,
     81                 source   = src,
     82                 includes = 'src',
     83                 uselib   = 'SCRAPS',
     84                 use      = 'CAPNP MUJS capnp libshit mujs',
     85                 target   = 'scraps-js')
     86 
     87     src = [
     88         'src/scraps/date_time.cpp',
     89         'src/scraps/dotnet_date_time_format.cpp',
     90         'src/scraps/dotnet_date_time_parse.cpp',
     91         'src/scraps/format/archive.cpp',
     92         'src/scraps/format/proto/action.capnp',
     93         'src/scraps/format/proto/game.capnp',
     94         'src/scraps/format/rags_common/importer_action.cpp',
     95         'src/scraps/format/rags_common/importer_base.cpp',
     96         'src/scraps/format/rags_common/importer_file.cpp',
     97         'src/scraps/format/rags_common/importer_object.cpp',
     98         'src/scraps/format/rags_common/importer_variable.cpp',
     99         'src/scraps/format/rags_sql/base64.cpp',
    100         'src/scraps/format/rags_sql/default_schema.cpp',
    101         'src/scraps/format/rags_sql/popen_sql.cpp',
    102         'src/scraps/format/rags_sql/schema_update.cpp',
    103         'src/scraps/format/rags_sql/sql.cpp',
    104         'src/scraps/format/string_pool.cpp',
    105         'src/scraps/game/action_eval.cpp',
    106         'src/scraps/game/action_eval/action_helper.cpp',
    107         'src/scraps/game/action_eval/choices.cpp',
    108         'src/scraps/game/action_eval/command_action.cpp',
    109         'src/scraps/game/action_eval/command_character.cpp',
    110         'src/scraps/game/action_eval/command_file.cpp',
    111         'src/scraps/game/action_eval/command_helper.cpp',
    112         'src/scraps/game/action_eval/command_list.cpp',
    113         'src/scraps/game/action_eval/command_object.cpp',
    114         'src/scraps/game/action_eval/command_objects.cpp',
    115         'src/scraps/game/action_eval/command_room.cpp',
    116         'src/scraps/game/action_eval/command_timer.cpp',
    117         'src/scraps/game/action_eval/condition.cpp',
    118         'src/scraps/game/action_eval/enter_leave.cpp',
    119         'src/scraps/game/action_eval/game_init.cpp',
    120         'src/scraps/game/action_eval/if_character.cpp',
    121         'src/scraps/game/action_eval/if_helper.cpp',
    122         'src/scraps/game/action_eval/if_misc.cpp',
    123         'src/scraps/game/action_eval/if_object.cpp',
    124         'src/scraps/game/action_eval/if_variable.cpp',
    125         'src/scraps/game/action_eval/loop_misc.cpp',
    126         'src/scraps/game/action_eval/loop_object.cpp',
    127         'src/scraps/game/action_eval/outer_action.cpp',
    128         'src/scraps/game/action_eval/timer.cpp',
    129         'src/scraps/game/action_state.cpp',
    130         'src/scraps/game/character_state.cpp',
    131         'src/scraps/game/dummy_game.cpp',
    132         'src/scraps/game/game_controller.cpp',
    133         'src/scraps/game/game_state.cpp',
    134         'src/scraps/game/object_state.cpp',
    135         'src/scraps/game/property_state.cpp',
    136         'src/scraps/game/room_state.cpp',
    137         'src/scraps/game/text_replace.cpp',
    138         'src/scraps/game/text_replace/attribute.cpp',
    139         'src/scraps/game/text_replace/js_array.cpp',
    140         'src/scraps/game/text_replace/property.cpp',
    141         'src/scraps/game/text_replace/simple_misc.cpp',
    142         'src/scraps/game/text_replace/simple_object.cpp',
    143         'src/scraps/game/text_replace/simple_player.cpp',
    144         'src/scraps/game/text_replace/simple_room.cpp',
    145         'src/scraps/game/text_replace/variable.cpp',
    146         'src/scraps/game/timer_state.cpp',
    147         'src/scraps/game/variable_state.cpp',
    148         'src/scraps/polymorphic_stack.cpp',
    149         'src/scraps/popen.cpp',
    150         'src/scraps/string_utils.cpp',
    151         'src/scraps/ui/dummy.cpp',
    152         'src/scraps/uuid.cpp',
    153     ]
    154 
    155     # compile common stuff that doesn't depend on optionals as a separate
    156     # objects task. this way enabling/disabling optionals doesn't rebuild the
    157     # whole code due to include path changes
    158     ctx.objects(idx      = 1000,
    159                 source   = src,
    160                 includes = 'src',
    161                 uselib   = 'SCRAPS',
    162                 use      = 'CAPNP capnp libshit',
    163                 target   = 'scraps-objects')
    164     # source can't be empty though...
    165     ctx.program(idx      = 1001,
    166                 source   = 'src/scraps/main.cpp',
    167                 includes = 'src',
    168                 uselib   = 'SCRAPS',
    169                 use      = ['scraps-objects', 'scraps-gzip', 'scraps-js',
    170                             'scraps-tests', 'scraps-xml'],
    171                 target   = 'scraps')