project('D Features', 'd', default_options : ['debug=false']) # ONLY FOR BACKWARDS COMPATIBILITY. # DO NOT DO THIS IN NEW CODE! # USE include_directories() INSTEAD OF BUILDING # STRINGS TO PATHS MANUALLY! data_dir = join_paths(meson.current_source_dir(), 'data') test_src = ['app.d', 'extra.d'] e_plain_bcompat = executable('dapp_menu_bcompat', test_src, d_import_dirs: [data_dir] ) test('dapp_menu_t_fail_bcompat', e_plain_bcompat, should_fail: true) test('dapp_menu_t_bcompat', e_plain_bcompat, args: ['menu']) # directory for data # This is the correct way to do this. data_dir = include_directories('data') e_plain = executable('dapp_menu', test_src, d_import_dirs: [data_dir] ) test('dapp_menu_t_fail', e_plain, should_fail: true) test('dapp_menu_t', e_plain, args: ['menu']) # test feature versions and string imports e_versions = executable('dapp_versions', test_src, d_import_dirs: [data_dir], d_module_versions: ['No_Menu', 'With_People'] ) test('dapp_versions_t_fail', e_versions, args: ['menu'], should_fail: true) test('dapp_versions_t', e_versions, args: ['people']) # test everything and unittests e_test = executable('dapp_test', test_src, d_import_dirs: [data_dir], d_module_versions: ['No_Menu', 'With_People'], d_unittest: true ) test('dapp_test', e_test) # test version level e_version_int = executable('dapp_version_int', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_VersionInteger', 3], ) test('dapp_version_int_t', e_version_int, args: ['debug']) # test version level failure e_version_int_fail = executable('dapp_version_int_fail', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_VersionInteger', 2], ) test('dapp_version_int_t_fail', e_version_int_fail, args: ['debug'], should_fail: true) # test debug conditions: disabled e_no_debug = executable('dapp_no_debug', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_Debug'], ) test('dapp_no_debug_t_fail', e_no_debug, args: ['debug'], should_fail: true) # test debug conditions: enabled e_debug = executable('dapp_debug', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_Debug'], d_debug: 1, ) test('dapp_debug_t', e_debug, args: ['debug']) # test debug conditions: integer e_debug_int = executable('dapp_debug_int', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_DebugInteger'], d_debug: 3, ) test('dapp_debug_int_t', e_debug_int, args: ['debug']) # test debug conditions: identifier e_debug_ident = executable('dapp_debug_ident', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_DebugIdentifier'], d_debug: 'DebugIdentifier', ) test('dapp_debug_ident_t', e_debug_ident, args: ['debug']) # test with all debug conditions at once, and with redundant values e_debug_all = executable('dapp_debug_all', test_src, d_import_dirs: [data_dir], d_module_versions: ['With_DebugAll'], d_debug: ['4', 'DebugIdentifier', 2, 'DebugIdentifierUnused'], ) test('dapp_debug_all_t', e_debug_all, args: ['debug'])