1*f0687c8aSRaman Tennetipy3_dep = dependency('python3', required : get_option('pykms')) 2*f0687c8aSRaman Tenneti 3*f0687c8aSRaman Tennetiif py3_dep.found() == false 4*f0687c8aSRaman Tenneti subdir_done() 5*f0687c8aSRaman Tennetiendif 6*f0687c8aSRaman Tenneti 7*f0687c8aSRaman Tennetiif get_option('system-pybind11').enabled() 8*f0687c8aSRaman Tenneti pybind11_dep = dependency('pybind11') 9*f0687c8aSRaman Tennetielif get_option('system-pybind11').disabled() 10*f0687c8aSRaman Tenneti pybind11_proj = subproject('pybind11') 11*f0687c8aSRaman Tenneti pybind11_dep = pybind11_proj.get_variable('pybind11_dep') 12*f0687c8aSRaman Tennetielse 13*f0687c8aSRaman Tenneti pybind11_dep = dependency('pybind11', fallback : ['pybind11', 'pybind11_dep']) 14*f0687c8aSRaman Tennetiendif 15*f0687c8aSRaman Tenneti 16*f0687c8aSRaman Tennetipykms_sources = files([ 17*f0687c8aSRaman Tenneti 'pykmsbase.cpp', 18*f0687c8aSRaman Tenneti 'pykms.cpp', 19*f0687c8aSRaman Tenneti]) 20*f0687c8aSRaman Tenneti 21*f0687c8aSRaman Tennetiif get_option('utils') 22*f0687c8aSRaman Tenneti pykms_sources += files([ 23*f0687c8aSRaman Tenneti 'pykmsutil.cpp', 24*f0687c8aSRaman Tenneti 'pyvid.cpp', 25*f0687c8aSRaman Tenneti ]) 26*f0687c8aSRaman Tennetiendif 27*f0687c8aSRaman Tenneti 28*f0687c8aSRaman Tennetiif libdrmomap_dep.found() 29*f0687c8aSRaman Tenneti pykms_sources += files([ 30*f0687c8aSRaman Tenneti 'pykmsomap.cpp', 31*f0687c8aSRaman Tenneti ]) 32*f0687c8aSRaman Tennetiendif 33*f0687c8aSRaman Tenneti 34*f0687c8aSRaman Tennetipykms_deps = [ 35*f0687c8aSRaman Tenneti libkmsxx_dep, 36*f0687c8aSRaman Tenneti py3_dep, 37*f0687c8aSRaman Tenneti pybind11_dep, 38*f0687c8aSRaman Tenneti] 39*f0687c8aSRaman Tenneti 40*f0687c8aSRaman Tennetiif get_option('utils') 41*f0687c8aSRaman Tenneti pykms_deps += [ libkmsxxutil_dep ] 42*f0687c8aSRaman Tennetiendif 43*f0687c8aSRaman Tenneti 44*f0687c8aSRaman Tennetipykms_args = [ '-fvisibility=hidden' ] 45*f0687c8aSRaman Tenneti 46*f0687c8aSRaman Tennetidestdir = get_option('libdir') / 'python' + py3_dep.version() / 'site-packages/pykms' 47*f0687c8aSRaman Tenneti 48*f0687c8aSRaman Tennetipykms = shared_module('pykms', 49*f0687c8aSRaman Tenneti pykms_sources, 50*f0687c8aSRaman Tenneti install : true, 51*f0687c8aSRaman Tenneti install_dir : destdir, 52*f0687c8aSRaman Tenneti name_prefix : '', 53*f0687c8aSRaman Tenneti dependencies : pykms_deps, 54*f0687c8aSRaman Tenneti cpp_args : pykms_args) 55*f0687c8aSRaman Tenneti 56*f0687c8aSRaman Tenneti# Copy __init__.py to build dir so that we can run without installing 57*f0687c8aSRaman Tenneticonfigure_file(input: '__init__.py', output: '__init__.py', copy: true, 58*f0687c8aSRaman Tenneti install : true, install_dir : destdir) 59