build.py 1.06 KB
Newer Older
rusty1s's avatar
rusty1s committed
1
import os.path as osp
rusty1s's avatar
rusty1s committed
2
3
4
5
6
import subprocess

import torch
from torch.utils.ffi import create_extension

rusty1s's avatar
rusty1s committed
7
files = ['Graclus', 'Grid']
rusty1s's avatar
rusty1s committed
8

rusty1s's avatar
gputest  
rusty1s committed
9
10
11
headers = ['aten/TH/TH{}.h'.format(f) for f in files]
sources = ['aten/TH/TH{}.c'.format(f) for f in files]
include_dirs = ['aten/TH']
rusty1s's avatar
rusty1s committed
12
13
define_macros = []
extra_objects = []
rusty1s's avatar
c99 fix  
rusty1s committed
14
extra_compile_args = ['-std=c99']
rusty1s's avatar
rusty1s committed
15
16
with_cuda = False

rusty1s's avatar
rusty1s committed
17
if torch.cuda.is_available():
rusty1s's avatar
rename  
rusty1s committed
18
    subprocess.call(['./build.sh', osp.dirname(torch.__file__)])
rusty1s's avatar
rusty1s committed
19
20
21
22
23

    headers += ['aten/THCC/THCC{}.h'.format(f) for f in files]
    sources += ['aten/THCC/THCC{}.c'.format(f) for f in files]
    include_dirs += ['aten/THCC']
    define_macros += [('WITH_CUDA', None)]
rusty1s's avatar
rusty1s committed
24
    extra_objects += ['torch_cluster/_ext/THC.so']
rusty1s's avatar
rusty1s committed
25
    with_cuda = True
rusty1s's avatar
rusty1s committed
26
27
28
29
30
31
32
33
34

ffi = create_extension(
    name='torch_cluster._ext.ffi',
    package=True,
    headers=headers,
    sources=sources,
    include_dirs=include_dirs,
    define_macros=define_macros,
    extra_objects=extra_objects,
rusty1s's avatar
c99 fix  
rusty1s committed
35
    extra_compile_args=extra_compile_args,
rusty1s's avatar
rusty1s committed
36
37
38
39
40
    with_cuda=with_cuda,
    relative_to=__file__)

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