util.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:vizgen 作者: uva-graphics 项目源码 文件源码
def compile_c_single_file(filename, vectorize=True):
    """
    Compile C source (excluding .c extension) in place to module.
    """
    c_filename = filename + '.c'

    # this is a temporary hack to force the use of GCC instead of clang
    if os.path.isfile("/usr/local/bin/gcc-5"):
        print("using gcc-5 compiler from homebrew...")
        os.environ["CC"] = os.environ["CXX"] = "gcc-5"
    else:
        os.environ["CC"] = os.environ["CXX"] = "gcc"

    if os.name == 'nt':
        extension = [
            Extension(
                filename,
                sources = [c_filename],
                include_dirs = [numpy.get_include()],
                extra_compile_args = '-openmp'.split(),
                extra_link_args = '-openmp'.split()
            )
        ]

    else:
        extension = [
            Extension(
                filename,
                sources = [c_filename],
                include_dirs = [numpy.get_include()],
                extra_compile_args = '-w -fopenmp'.split() + (['-fno-tree-vectorize'] if not vectorize else []),
                extra_link_args = '-fopenmp'.split()
            )
        ]

    setup(
        name = filename,
        cmdclass = {'build_ext' : build_ext}, 
        include_dirs = [numpy.get_include()],
        ext_modules = extension,
        script_args='build_ext --inplace'.split()
    )
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号