1project('D Features', 'd', default_options : ['debug=false']) 2 3# ONLY FOR BACKWARDS COMPATIBILITY. 4# DO NOT DO THIS IN NEW CODE! 5# USE include_directories() INSTEAD OF BUILDING 6# STRINGS TO PATHS MANUALLY! 7data_dir = join_paths(meson.current_source_dir(), 'data') 8 9test_src = ['app.d', 'extra.d'] 10 11e_plain_bcompat = executable('dapp_menu_bcompat', 12 test_src, 13 d_import_dirs: [data_dir] 14) 15test('dapp_menu_t_fail_bcompat', e_plain_bcompat, should_fail: true) 16test('dapp_menu_t_bcompat', e_plain_bcompat, args: ['menu']) 17 18# directory for data 19# This is the correct way to do this. 20data_dir = include_directories('data') 21 22e_plain = executable('dapp_menu', 23 test_src, 24 d_import_dirs: [data_dir] 25) 26test('dapp_menu_t_fail', e_plain, should_fail: true) 27test('dapp_menu_t', e_plain, args: ['menu']) 28 29 30# test feature versions and string imports 31e_versions = executable('dapp_versions', 32 test_src, 33 d_import_dirs: [data_dir], 34 d_module_versions: ['No_Menu', 'With_People'] 35) 36test('dapp_versions_t_fail', e_versions, args: ['menu'], should_fail: true) 37test('dapp_versions_t', e_versions, args: ['people']) 38 39# test everything and unittests 40e_test = executable('dapp_test', 41 test_src, 42 d_import_dirs: [data_dir], 43 d_module_versions: ['No_Menu', 'With_People'], 44 d_unittest: true 45) 46test('dapp_test', e_test) 47 48# test version level 49e_version_int = executable('dapp_version_int', 50 test_src, 51 d_import_dirs: [data_dir], 52 d_module_versions: ['With_VersionInteger', 3], 53) 54test('dapp_version_int_t', e_version_int, args: ['debug']) 55 56# test version level failure 57e_version_int_fail = executable('dapp_version_int_fail', 58 test_src, 59 d_import_dirs: [data_dir], 60 d_module_versions: ['With_VersionInteger', 2], 61) 62test('dapp_version_int_t_fail', e_version_int_fail, args: ['debug'], should_fail: true) 63 64# test debug conditions: disabled 65e_no_debug = executable('dapp_no_debug', 66 test_src, 67 d_import_dirs: [data_dir], 68 d_module_versions: ['With_Debug'], 69) 70test('dapp_no_debug_t_fail', e_no_debug, args: ['debug'], should_fail: true) 71 72# test debug conditions: enabled 73e_debug = executable('dapp_debug', 74 test_src, 75 d_import_dirs: [data_dir], 76 d_module_versions: ['With_Debug'], 77 d_debug: 1, 78) 79test('dapp_debug_t', e_debug, args: ['debug']) 80 81# test debug conditions: integer 82e_debug_int = executable('dapp_debug_int', 83 test_src, 84 d_import_dirs: [data_dir], 85 d_module_versions: ['With_DebugInteger'], 86 d_debug: 3, 87) 88test('dapp_debug_int_t', e_debug_int, args: ['debug']) 89 90# test debug conditions: identifier 91e_debug_ident = executable('dapp_debug_ident', 92 test_src, 93 d_import_dirs: [data_dir], 94 d_module_versions: ['With_DebugIdentifier'], 95 d_debug: 'DebugIdentifier', 96) 97test('dapp_debug_ident_t', e_debug_ident, args: ['debug']) 98 99# test with all debug conditions at once, and with redundant values 100e_debug_all = executable('dapp_debug_all', 101 test_src, 102 d_import_dirs: [data_dir], 103 d_module_versions: ['With_DebugAll'], 104 d_debug: ['4', 'DebugIdentifier', 2, 'DebugIdentifierUnused'], 105) 106test('dapp_debug_all_t', e_debug_all, args: ['debug']) 107