xref: /aosp_15_r20/external/libkmsxx/py/pykms/meson.build (revision f0687c8a10b3e371dbe09214db6664e37c283cca)
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