Blame c++/contourgl/SConstruct

Ivan Mahonin 546280
Ivan Mahonin 546280
env = Environment()
Ivan Mahonin 546280
Ivan Mahonin 546280
# config
Ivan Mahonin 546280
Ivan Mahonin 546280
# just comment following line to disable CUDA
Ivan Mahonin 546280
cuda          = 'cuda-9.2'
Ivan Mahonin 546280
try: cuda
Ivan Mahonin 546280
except NameError: cuda = ''
Ivan Mahonin 546280
cuda_path      = '/opt/' + cuda
Ivan Mahonin 546280
cuda_bin       = cuda_path + '/bin'
Ivan Mahonin 546280
cuda_pkgconfig = cuda_path + '/pkgconfig'
Ivan Mahonin 546280
cuda_flags     = '-O3 -use_fast_math'
Ivan Mahonin 546280
Ivan Mahonin 546280
libs = ['gl', 'x11', 'OpenCL']
Ivan Mahonin 546280
Ivan Mahonin 546280
Ivan Mahonin 546280
# compute build options
Ivan Mahonin 546280
Ivan Mahonin 546280
flags = ' -O3 -Wall -fmessage-length=0 -DGL_GLEXT_PROTOTYPES'
Ivan Mahonin 546280
cuda_flags = ' '
Ivan Mahonin 546280
Ivan Mahonin 546280
if cuda:
Ivan Mahonin 546280
	flags += ' -DCUDA'
Ivan Mahonin 546280
	
Ivan Mahonin 546280
	# remember pkg-config path
Ivan Mahonin 546280
	old = env['ENV']['PKG_CONFIG_PATH'] if 'PKG_CONFIG_PATH' in env['ENV'] else None
Ivan Mahonin 546280
Ivan Mahonin 546280
	env['ENV']['PKG_CONFIG_PATH'] = cuda_pkgconfig
Ivan Mahonin 546280
	env.ParseConfig('pkg-config --cflags --libs ' + cuda)
Ivan Mahonin 546280
	
Ivan Mahonin 546280
	# restore pkg-config path
Ivan Mahonin 546280
	if old: env['ENV']['PKG_CONFIG_PATH'] = old
Ivan Mahonin 546280
	
Ivan Mahonin 546280
	env['BUILDERS']['Cuda'] = Builder(
Ivan Mahonin 546280
		action = cuda_bin + '/nvcc ' + cuda_flags + '-ptx $SOURCE -o $TARGET',
Ivan Mahonin 546280
		suffix = '.ptx',
Ivan Mahonin 546280
		src_suffix = '.cu' )
Ivan Mahonin 546280
	
Ivan Mahonin 546280
Ivan Mahonin 546280
# files lists
Ivan Mahonin 546280
Ivan Mahonin 546280
target = 'contourgl'
Ivan Mahonin 546280
Ivan Mahonin 546280
sources = [
Ivan Mahonin 546280
	'contourgl.cpp',
Ivan Mahonin 546280
	'clcontext.cpp',
Ivan Mahonin 546280
	'clrender.cpp',
Ivan Mahonin 546280
	'contour.cpp',
Ivan Mahonin 546280
	'contourbuilder.cpp',
Ivan Mahonin 546280
	'environment.cpp',
Ivan Mahonin 546280
	'geometry.cpp',
Ivan Mahonin 546280
	'glcontext.cpp',
Ivan Mahonin 546280
	'measure.cpp',
Ivan Mahonin 546280
	'polyspan.cpp',
Ivan Mahonin 546280
	'shaders.cpp',
Ivan Mahonin 546280
	'swrender.cpp',
Ivan Mahonin 546280
	'test.cpp',
Ivan Mahonin 546280
	'triangulator.cpp',
Ivan Mahonin 546280
	'utils.cpp' ]
Ivan Mahonin 546280
Ivan Mahonin 546280
if cuda:
Ivan Mahonin 546280
	sources += [
Ivan Mahonin 546280
		'cudacontext.cpp',
Ivan Mahonin 546280
		'cudarender.cpp' ]
Ivan Mahonin 546280
	cuda_sources = [
Ivan Mahonin 546280
		'cuda/contour.cu',
Ivan Mahonin 546280
		'cuda/hello.cu' ]
Ivan Mahonin 546280
Ivan Mahonin 546280
Ivan Mahonin 546280
# build
Ivan Mahonin 546280
Ivan Mahonin 546280
env.ParseConfig('pkg-config --cflags --libs ' + ' '.join(libs))
Ivan Mahonin 546280
Ivan Mahonin 546280
if cuda:
Ivan Mahonin 546280
	for cuda_source in cuda_sources:
Ivan Mahonin 546280
		env.Cuda(cuda_source)
Ivan Mahonin 546280
	
Ivan Mahonin 546280
env.Program(
Ivan Mahonin 546280
	target = target,
Ivan Mahonin 546280
	source = sources,
Ivan Mahonin 546280
	parse_flags = flags )
Ivan Mahonin 546280