Example #1
0
def append_coverage_code(testfile, coverage):
    if not coverage:
        return

    with open(testfile, 'r') as file_p:
        content = file_p.read()

    with open(testfile, 'w') as file_p:
        file_p.write(JS_COVERAGE_CODE.format(
            folder=JS_COVERAGE_FOLDER, file=fs.basename(testfile)))
        file_p.write(content)
Example #2
0
def generate_module(args):
    directory = args.directory

    if fs.isdir(directory):
        # handle strings end with '/'
        if directory[-1] == '/':
            directory = directory[:-1]

        dirname = fs.basename(directory)
    else:
        sys.exit('Please give an existing directory.')

    if args.out_dir:
        output_dir = args.out_dir
    else:
        output_dir = fs.join(fs.join(path.TOOLS_ROOT, 'module_generator'),
                             'output')

    if not fs.isdir(output_dir):
        os.mkdir(output_dir)

    output_dir = fs.join(output_dir, dirname + '_module')

    if not fs.isdir(output_dir):
        os.mkdir(output_dir)

    src_dir = fs.join(output_dir, 'src')

    if not fs.isdir(src_dir):
        os.mkdir(src_dir)

    header_file = fs.join(src_dir, dirname + '_js_binding.h')
    header_text, api_headers = generate_header(directory)

    with open(header_file, 'w') as h:
        h.write(header_text)

    c_file = generate_c_source(header_file, api_headers, dirname, args)

    extension = 'cpp' if args.lang == 'c++' else 'c'
    with open(fs.join(src_dir, dirname + '_js_binding.' + extension), 'w') as c:
        c.write(c_file)

    library = search_for_lib(directory)

    if not library:
        print ('\033[93mWARNING: Cannot find library file. ' +
               'Only the binding layer source has generated.\033[00m')
        return

    lib_root, lib_name = library
    cmake_file = MODULE_CMAKE.format(NAME=dirname, LIBRARY=lib_name[3:-2])

    with open(fs.join(output_dir, 'module.cmake'), 'w') as cmake:
        cmake.write(cmake_file)

    fs.copyfile(fs.join(lib_root, lib_name), fs.join(output_dir, lib_name))

    json_file = MODULES_JSON.format(NAME=dirname, CMAKE='module.cmake')

    if args.lang == 'c++':
        cmake_lists = CMAKE_LISTS.format(NAME=dirname)
        with open(fs.join(src_dir, 'CMakeLists.txt'), 'w') as cmake:
            cmake.write(cmake_lists)

    with open(fs.join(output_dir, 'modules.json'), 'w') as json:
        json.write(json_file)