def METHOD_NAME(bld):
    bld.stlib(features = 'cxx test sdk_include_filter',
              includes = '. ../',
              source   = 'test_sdk_lib.cpp',
              target   = 'test_sdk_lib',
              always   = True)
    bld.program(features         = 'c cxx embed test',
                includes         = '.',
                use              = 'TESTMAIN EXTENSION DLIB SOCKET LUA PROFILE_NULL test_sdk_lib',
                exported_symbols = ['TestSdk'],
                target           = 'test_sdk',
                source           = 'test_sdk.cpp',
                always           = True)
    # copy the semi-public dmsdk files (*_ddf.h + res_*.h)
    extra_includes = []
    extra_include_dir = os.path.join(bld.env['DYNAMO_HOME'], "include")
    for root, dirs, files in os.walk(extra_include_dir):
        for file in files:
            if file.endswith('.h') and ('ddf' in file or file.startswith('res_')):
                extra_includes.append(os.path.join(root, file))
    extra_node = bld.path.find_or_declare('extra')
    if os.path.exists(extra_node.abspath()):
        shutil.rmtree(extra_node.abspath())
    extra_node.mkdir()
    for extra_include in extra_includes:
        copy_file_task(bld, extra_include_dir, extra_include, extra_node)
    bld.add_group()
    # gather the includes that we wish to test
    sdk_dir = os.path.join(bld.env['DYNAMO_HOME'], 'sdk', 'include', 'dmsdk')
    exclude_dirs = ['vectormath', 'external', 'lua']
    exclude_files = ['sdk.h']
    exclude_endings = ['_posix.h', '_win32.h', '_mach.h', '_android.h', '_pthread.h', '_vendor.h', '_nx64.h', '_ps4.h']
    if not platform_supports_feature(bld.env.PLATFORM, 'opengl', {}):
        exclude_dirs.append('glfw')
    includes = []
    for root, dirs, files in os.walk(sdk_dir):
        dirs[:] = [d for d in dirs if d not in exclude_dirs]
        for f in files:
            if f in exclude_files:
                continue
            # for the platform specific files, we have a "main" header which includes these
            def ends_with(s, patterns):
                for p in patterns:
                    if s.endswith(p):
                        return True
                return False
            if ends_with(f, exclude_endings):
                continue
            path = os.path.join(root, f)
            includes.append(path)
    # Create the test files and try to build them
    with open('src/test/test_include.cpp', 'rt', encoding='utf-8') as f:
        template = f.read()
    for index, include in enumerate(includes):
        basename = os.path.basename(include).replace('.', '_') + '_%d.cpp' % index
        source = 'test_include_%s' % basename
        source_node = bld.path.find_or_declare(source)
        with open(source_node.abspath(), 'wt') as f:
            content = template.replace('{custom_include}', include)
            f.write(content)
        bld.stlib(features = 'cxx sdk_include_filter',
              includes = ['.','../'] + [extra_node],
              source   = source,
              target   = 'test_sdk_include_%s_%d' % (basename, index),
              always   = True)