build.py 1005 Bytes
Newer Older
rusty1s's avatar
rusty1s committed
1
import os.path as osp
rusty1s's avatar
rename  
rusty1s committed
2
import subprocess
rusty1s's avatar
bugfix  
rusty1s committed
3

rusty1s's avatar
rusty1s committed
4
import torch
rusty1s's avatar
rusty1s committed
5
6
from torch.utils.ffi import create_extension

rusty1s's avatar
rusty1s committed
7
8
headers = ['torch_scatter/src/cpu.h']
sources = ['torch_scatter/src/cpu.c']
9
include_dirs = ['torch_scatter/src']
rusty1s's avatar
rusty1s committed
10
define_macros = []
rusty1s's avatar
rusty1s committed
11
extra_objects = []
rusty1s's avatar
c99 fix  
rusty1s committed
12
extra_compile_args = ['-std=c99']
rusty1s's avatar
rusty1s committed
13
14
with_cuda = False

rusty1s's avatar
rusty1s committed
15
if torch.cuda.is_available():
rusty1s's avatar
rusty1s committed
16
    subprocess.call(['./build.sh', osp.dirname(torch.__file__)])
rusty1s's avatar
bugfix  
rusty1s committed
17

rusty1s's avatar
rusty1s committed
18
19
    headers += ['torch_scatter/src/gpu.h']
    sources += ['torch_scatter/src/gpu.c']
20
    include_dirs += ['torch_scatter/kernel']
rusty1s's avatar
rusty1s committed
21
22
    define_macros += [('WITH_CUDA', None)]
    extra_objects += ['torch_scatter/build/kernel.so']
rusty1s's avatar
rusty1s committed
23
24
    with_cuda = True

rusty1s's avatar
rusty1s committed
25
ffi = create_extension(
rusty1s's avatar
rename  
rusty1s committed
26
    name='torch_scatter._ext.ffi',
rusty1s's avatar
rusty1s committed
27
28
29
    package=True,
    headers=headers,
    sources=sources,
rusty1s's avatar
rusty1s committed
30
31
    include_dirs=include_dirs,
    define_macros=define_macros,
rusty1s's avatar
rusty1s committed
32
    extra_objects=extra_objects,
rusty1s's avatar
c99 fix  
rusty1s committed
33
    extra_compile_args=extra_compile_args,
rusty1s's avatar
rusty1s committed
34
35
36
37
38
    with_cuda=with_cuda,
    relative_to=__file__)

if __name__ == '__main__':
    ffi.build()