On Wednesday, 2018-01-03 13:31:28 -0800, Dylan Baker wrote:
This patch adds a complete meson build system, including tests and install. It has the necessary hooks to allow it be used as a subproject for other meson based builds such as mesa.
Signed-off-by: Dylan Baker dylan.c.baker@intel.com
.editorconfig | 4 +- amdgpu/.editorconfig | 5 +- amdgpu/meson.build | 70 +++++++- data/meson.build | 27 +++- etnaviv/meson.build | 64 ++++++- exynos/meson.build | 53 +++++- freedreno/meson.build | 82 ++++++++- intel/meson.build | 111 +++++++++++- libkms/meson.build | 75 +++++++- man/meson.build | 66 ++++++- meson.build | 378 +++++++++++++++++++++++++++++++++++++- meson_options.txt | 38 ++++- nouveau/meson.build | 65 ++++++- omap/meson.build | 53 +++++- radeon/meson.build | 65 ++++++- tegra/meson.build | 52 +++++- tests/amdgpu/meson.build | 40 ++++- tests/etnaviv/meson.build | 54 +++++- tests/exynos/meson.build | 54 +++++- tests/kms/meson.build | 54 +++++- tests/kmstest/meson.build | 28 +++- tests/meson.build | 85 ++++++++- tests/modeprint/meson.build | 29 +++- tests/nouveau/meson.build | 30 +++- tests/proptest/meson.build | 30 +++- tests/radeon/meson.build | 27 +++- tests/tegra/meson.build | 27 +++- tests/util/meson.build | 37 ++++- tests/vbltest/meson.build | 28 +++- vc4/meson.build | 28 +++- 30 files changed, 1759 insertions(+) create mode 100644 amdgpu/meson.build create mode 100644 data/meson.build create mode 100644 etnaviv/meson.build create mode 100644 exynos/meson.build create mode 100644 freedreno/meson.build create mode 100644 intel/meson.build create mode 100644 libkms/meson.build create mode 100644 man/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 nouveau/meson.build create mode 100644 omap/meson.build create mode 100644 radeon/meson.build create mode 100644 tegra/meson.build create mode 100644 tests/amdgpu/meson.build create mode 100644 tests/etnaviv/meson.build create mode 100644 tests/exynos/meson.build create mode 100644 tests/kms/meson.build create mode 100644 tests/kmstest/meson.build create mode 100644 tests/meson.build create mode 100644 tests/modeprint/meson.build create mode 100644 tests/nouveau/meson.build create mode 100644 tests/proptest/meson.build create mode 100644 tests/radeon/meson.build create mode 100644 tests/tegra/meson.build create mode 100644 tests/util/meson.build create mode 100644 tests/vbltest/meson.build create mode 100644 vc4/meson.build
diff --git a/.editorconfig b/.editorconfig index 893b7be..bbad3e6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,3 +17,7 @@ indent_style = tab [*.m4] indent_style = space indent_size = 2
+[meson.build,meson_options.txt]
I think this needs to be [{meson.build,meson_options.txt}]
+indent_style = space +indent_size = 2 diff --git a/amdgpu/.editorconfig b/amdgpu/.editorconfig index 2528d67..0c758d6 100644 --- a/amdgpu/.editorconfig +++ b/amdgpu/.editorconfig @@ -7,3 +7,8 @@ indent_style = tab indent_size = 8 tab_width = 8 insert_final_newline = true
+[meson.build] +indent_style = space +indent_size = 2
These two should be inherited from the .editorconfig one level above
+insert_final_newline = false
That's weird; why?
diff --git a/amdgpu/meson.build b/amdgpu/meson.build new file mode 100644 index 0000000..13bf88b --- /dev/null +++ b/amdgpu/meson.build @@ -0,0 +1,70 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_amdgpu = files(
- 'amdgpu_asic_id.c',
- 'amdgpu_bo.c',
- 'amdgpu_cs.c',
- 'amdgpu_device.c',
- 'amdgpu_gpu_info.c',
- 'amdgpu_internal.h',
- 'amdgpu_vamgr.c',
- 'amdgpu_vm.c',
- 'util_hash.c',
- 'util_hash.h',
- 'util_hash_table.c',
- 'util_hash_table.h',
Should we clean up the list in libdrm (even though it's not in mesa), and only have files that need to be in these lists? Ie. remove all files that are included by other files in the list, such as all the headers in this list?
+)
+libdrm_amdgpu = shared_library(
- 'drm_amdgpu',
- [files_amdgpu, config_file],
- c_args : [
- warn_c_args,
- '-DAMDGPU_ASIC_ID_TABLE="@0@"'.format(join_paths(get_option('datadir'), 'amdgpu.ids')),
This raises the question: do we want to support android? Also, isn't there a /libdrm/ missing here?
- ],
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : [dep_pthread_stubs],
Nit: unnecessary brackets
- version : '1.0.0',
- install : true,
+)
+install_headers('amdgpu.h', subdir : 'libdrm')
+pkg.generate(
- name : 'libdrm_amdgpu',
- libraries : libdrm_amdgpu,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to kernel DRM services for amdgpu',
+)
+ext_libdrm_amdgpu = declare_dependency(
- link_with : [libdrm, libdrm_amdgpu],
- include_directories : [inc_drm, include_directories('.')],
+)
+test(
- 'amdgpu-symbol-check',
- prog_bash,
- args : [files('amdgpu-symbol-check'), libdrm_amdgpu]
+) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..4990ca5 --- /dev/null +++ b/data/meson.build @@ -0,0 +1,27 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+if with_amdgpu
- install_data(
- 'amdgpu.ids',
- install_mode : 'r--r--r--',
- install_dir : join_paths(get_option('datadir'), 'libdrm'),
How about setting a variable in amdgpu/meson.build?
- )
+endif diff --git a/etnaviv/meson.build b/etnaviv/meson.build new file mode 100644 index 0000000..8f39775 --- /dev/null +++ b/etnaviv/meson.build @@ -0,0 +1,64 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_etnaviv = files(
- 'etnaviv_device.c',
- 'etnaviv_gpu.c',
- 'etnaviv_bo.c',
- 'etnaviv_bo_cache.c',
- 'etnaviv_perfmon.c',
- 'etnaviv_pipe.c',
- 'etnaviv_cmd_stream.c',
- 'etnaviv_drm.h',
- 'etnaviv_priv.h',
+)
+libdrm_etnaviv = shared_library(
- 'drm_etnaviv',
- [files_etnaviv, config_file],
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
- dependencies : [dep_pthread_stubs, dep_rt],
- version : '1.0.0',
- install : true,
+)
+install_headers('etnaviv_drmif.h', subdir : 'libdrm')
+pkg.generate(
- name : 'libdrm_etnaviv',
- libraries : libdrm_etnaviv,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to Tegra kernel DRM services',
+)
+ext_libdrm_etnaviv = declare_dependency(
- link_with : [libdrm, libdrm_etnaviv],
- include_directories : [inc_drm, include_directories('.')],
+)
+test(
- 'etnaviv-symbol-check',
- prog_bash,
- args : [files('etnaviv-symbol-check'), libdrm_etnaviv]
+) diff --git a/exynos/meson.build b/exynos/meson.build new file mode 100644 index 0000000..7da74aa --- /dev/null +++ b/exynos/meson.build @@ -0,0 +1,53 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+libdrm_exynos = shared_library(
- 'drm_exynos',
- [files('exynos_drm.c', 'exynos_fimg2d.c', 'fimg2d_reg.h'), config_file],
Why skip files_exynos? I think I prefer the consistency, even if the var only contains two files.
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : [dep_pthread_stubs],
- version : '1.0.0',
- install : true,
+)
+install_headers('exynos_drmif.h', subdir : 'libdrm') +install_headers('exynos_drm.h', 'exynos_fimg2d.h', subdir : 'exynos')
+ext_libdrm_exynos = declare_dependency(
- link_with : [libdrm, libdrm_exynos],
- include_directories : [inc_drm, include_directories('.')],
+)
+pkg.generate(
- name : 'libdrm_exynos',
- libraries : libdrm_exynos,
- subdirs : ['.', 'libdrm', 'exynos'],
- version : '0.7',
- requires_private : 'libdrm',
- description : 'Userspace interface to exynos kernel DRM services',
+)
+test(
- 'exynos-symbol-check',
- prog_bash,
- args : [files('exynos-symbol-check'), libdrm_exynos]
+) diff --git a/freedreno/meson.build b/freedreno/meson.build new file mode 100644 index 0000000..47d6e44 --- /dev/null +++ b/freedreno/meson.build @@ -0,0 +1,82 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_freedreno = files(
- 'freedreno_device.c',
- 'freedreno_pipe.c',
- 'freedreno_priv.h',
- 'freedreno_ringbuffer.c',
- 'freedreno_bo.c',
- 'freedreno_bo_cache.c',
- 'msm/msm_bo.c',
- 'msm/msm_device.c',
- 'msm/msm_drm.h',
- 'msm/msm_pipe.c',
- 'msm/msm_priv.h',
- 'msm/msm_ringbuffer.c',
+)
+if with_freedreno_kgsl != 'false'
(mentioned by someone already)
- files_freedreno += files(
- 'kgsl/kgsl_bo.c',
- 'kgsl/kgsl_device.c',
- 'kgsl/kgsl_drm.h',
- 'kgsl/kgsl_pipe.c',
- 'kgsl/kgsl_priv.h',
- 'kgsl/kgsl_ringbuffer.c',
- 'kgsl/msm_kgsl.h',
- )
+endif
+libdrm_freedreno = shared_library(
- 'drm_freedreno',
- [files_freedreno, config_file],
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm],
- dependencies : [dep_valgrind, dep_pthread_stubs, dep_rt],
- link_with : libdrm,
- version : '1.0.0',
- install : true,
+)
+ext_libdrm_freedreno = declare_dependency(
- link_with : [libdrm, libdrm_freedreno],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers(
- 'freedreno_drmif.h', 'freedreno_ringbuffer.h',
- subdir : 'freedreno'
+)
+pkg.generate(
- name : 'libdrm_freedreno',
- libraries : libdrm_freedreno,
- subdirs : ['.', 'libdrm', 'freedreno'],
- version : '0.7',
- requires_private : 'libdrm',
- description : 'Userspace interface to freedreno kernel DRM services',
+)
+test(
- 'freedreno-symbol-check',
- prog_bash,
- args : [files('freedreno-symbol-check'), libdrm_freedreno]
+) diff --git a/intel/meson.build b/intel/meson.build new file mode 100644 index 0000000..18f35c0 --- /dev/null +++ b/intel/meson.build @@ -0,0 +1,111 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_intel = files(
- 'intel_bufmgr.c',
- 'intel_bufmgr_priv.h',
- 'intel_bufmgr_fake.c',
- 'intel_bufmgr_gem.c',
- 'intel_decode.c',
- 'intel_chipset.h',
- 'mm.c',
- 'mm.h',
- 'uthash.h',
+)
+libdrm_intel = shared_library(
- 'drm_intel',
- [files_intel, config_file],
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : [dep_pciaccess, dep_pthread_stubs, dep_rt, dep_valgrind],
- c_args : warn_c_args,
- version : '1.0.0',
- install : true,
+)
+ext_libdrm_intel = declare_dependency(
- link_with : [libdrm, libdrm_intel],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers(
- 'intel_bufmgr.h', 'intel_aub.h', 'intel_debug.h',
- subdir : 'libdrm',
+)
+pkg.generate(
- name : 'libdrm_intel',
- libraries : libdrm_intel,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- requires : 'libdrm',
- description : 'Userspace interface to intel kernel DRM services',
+)
+test_decode = executable(
- 'test_decode',
- files('test_decode.c'),
- include_directories : [inc_root, inc_drm],
- link_with : [libdrm, libdrm_intel],
- c_args : warn_c_args,
+)
+test(
- 'gen4-3d.batch',
- prog_bash,
- args : files('tests/gen4-3d.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'gen45-3d.batch',
- prog_bash,
- args : files('tests/gm45-3d.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'gen5-3d.batch',
- prog_bash,
- args : files('tests/gen5-3d.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'gen6-3d.batch',
- prog_bash,
- args : files('tests/gen6-3d.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'gen7-3d.batch',
- prog_bash,
- args : files('tests/gen7-3d.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'gen7-2d-copy.batch',
- prog_bash,
- args : files('tests/gen7-2d-copy.batch.sh'),
- workdir : meson.current_build_dir(),
+) +test(
- 'intel-symbol-check',
- prog_bash,
- args : [files('intel-symbol-check'), libdrm_intel]
+) diff --git a/libkms/meson.build b/libkms/meson.build new file mode 100644 index 0000000..80afc89 --- /dev/null +++ b/libkms/meson.build @@ -0,0 +1,75 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+libkms_include = [inc_root, inc_drm] +files_libkms = files(
- 'internal.h',
- 'linux.c',
- 'dumb.c',
- 'api.c',
+) +if with_vmwgfx
- files_libkms += files('vmwgfx.c')
+endif +if with_intel
- files_libkms += files('intel.c')
+endif +if with_nouveau
- files_libkms += files('nouveau.c')
+endif +if with_radeon
- files_libkms += files('radeon.c')
+endif +if with_exynos
- files_libkms += files('exynos.c')
- libkms_include += include_directories('../exynos')
+endif
+libkms = shared_library(
- 'kms',
- [files_libkms, config_file],
- c_args : warn_c_args,
- include_directories : libkms_include,
- link_with : libdrm,
- version : '1.0.0',
- install : true,
+)
+ext_libkms = declare_dependency(
- link_with : [libdrm, libkms],
- include_directories : [libkms_include],
+)
+install_headers('libkms.h', subdir : 'libkms')
+pkg.generate(
- name : 'libkms',
- libraries : libkms,
- subdirs : ['libkms'],
- version : '1.0.0',
- requires_private : 'libdrm',
- description : 'Library that abstracts away the different mm interfaces for kernel drivers',
+)
+test(
- 'kms-symbol-check',
- prog_bash,
- args : [files('kms-symbol-check'), libkms]
+) diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 0000000..0b2efe5 --- /dev/null +++ b/man/meson.build @@ -0,0 +1,66 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+xsltproc_args = [
- '--stringparam', 'man.authors.section.enabled', '0',
- '--stringparam', 'man.copyright.section.enabled', '0',
- '--stringparam', 'funcsynopsis.style', 'ansi',
- '--stringparam', 'man.output.quietly', '1',
- '--nonet', manpage_style,
+]
+xmls = [
- ['drm', '7'], ['drm-kms', '7'], ['drm-memory', '7'], ['drmAvailable', '3'],
- ['drmHandleEvent', '3'], ['drmModeGetResources', '3']
+] +foreach x : xmls
- m = x[0]
- s = x[1]
- custom_target(
- m,
- input : files('@0@.xml'.format(m)),
- output : '@0@.@1@'.format(m, s),
- command : [prog_xslt, '-o', '@OUTPUT@', xsltproc_args, '@INPUT0@'],
- install : true,
- install_dir : join_paths(get_option('datadir'), 'man', 'man@0@'.format(s)),
get_option('mandir')
- build_by_default : true,
- )
+endforeach
+foreach x : ['drm-mm', 'drm-gem', 'drm-ttm']
- gen = custom_target(
- 'gen-@0@'.format(x),
- input : 'drm-memory.xml',
- output : '@0@.xml'.format(x),
- command : [prog_sed, '-e',
's@^\.so \([a-z_]\+\)\.\([0-9]\)$$@\.so man\2\/\1\.\2@',
'@INPUT@'],
- capture : true,
- )
- custom_target(
- '@0@.7'.format(x),
- input : gen,
- output : '@0@.7'.format(x, '7'),
- command : [prog_xslt, '-o', '@OUTPUT@', xsltproc_args, '@INPUT@'],
- install : true,
- install_dir : join_paths(get_option('datadir'), 'man', 'man7'),
ditto: mandir
- build_by_default : true,
- )
+endforeach diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..74ae222 --- /dev/null +++ b/meson.build @@ -0,0 +1,378 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+project(
- 'libdrm',
- ['c'],
- version : '2.4.89',
- license : 'MIT',
- default_options : ['buildtype=debugoptimized', 'c_std=gnu99'],
gnu99, are you sure?
also, we should specify the version of meson we support here: + meson_version : '>= 0.42',
+)
+pkg = import('pkgconfig')
+with_udev = get_option('udev') +with_freedreno_kgsl = get_option('freedreno-kgls') +with_install_tests = get_option('install_test_programs') +with_cairo_tests = get_option('cairo_tests') +with_valgrind = get_option('valgrind')
+config = configuration_data()
+# TODO: openbsd is guess, the others are correct +if ['freebsd', 'dragonfly', 'netbsd', 'openbsd'].contains(host_machine.system())
Let's make that *BSD until we know of a special case? if host_machine.system().to_upper.endswith('BSD')
- dep_pthread_stubs = dependency('pthread-stubs', version : '>= 0.4')
+else
- dep_pthread_stubs = []
+endif +dep_threads = dependency('threads')
+cc = meson.get_compiler('c') +# Check for atomics +if cc.compiles('''
- int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
- int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
- ''',
- name : 'Intel Atomics')
- config.set10('HAVE_LIBDRM_ATOMIC_PRIMITIVES', true)
Will be unset in the other cases, instead of being set to 0
- with_atomics = true
+elif cc.has_header('atomic_ops.h')
- config.set10('HAVE_LIB_ATOMIC_OPS', true)
Ditto.
Those can be easily fixed by setting them to false first, just before the if chain: config.set10('HAVE_LIBDRM_ATOMIC_PRIMITIVES', false) config.set10('HAVE_LIB_ATOMIC_OPS', false)
- with_atomics = true
+elif cc.has_function('atomic_cas_uint')
- with_atomics = true
+else
- with_atomics = false
+endif
+with_intel = false +_intel = get_option('intel') +if _intel != 'false'
- if _intel == 'true' and not with_atomics
- error('libdrm_intel requires atomics.')
- endif
- with_intel = _intel == 'true' or host_machine.cpu_family().startswith('x86')
+endif
+with_radoen = false
typo
+_radeon = get_option('radeon') +if _radeon != 'false'
- if _radeon == 'true' and not with_atomics
- error('libdrm_radeon requires atomics.')
- endif
- with_radeon = true
+endif
+with_amdgpu = false +_amdgpu = get_option('amdgpu') +if _amdgpu != 'false'
- if _amdgpu == 'true' and not with_atomics
- error('libdrm_amdgpu requires atomics.')
- endif
- with_amdgpu = true
+endif
+with_nouveau = false +_nouveau = get_option('nouveau') +if _nouveau != 'false'
- if _nouveau == 'true' and not with_atomics
- error('libdrm_nouveau requires atomics.')
- endif
- with_nouveau = true
+endif
+with_vmwgfx = false +_vmwgfx = get_option('vmwgfx') +if _vmwgfx != 'false'
- with_vmwgfx = true
+endif
+with_omap = false +_omap = get_option('omap') +if _omap != 'false'
- if _omap == 'true' and not with_atomics
- error('libdrm_omap requires atomics.')
- endif
- with_omap = _omap == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+with_freedreno = false +_freedreno = get_option('freedreno') +if _freedreno != 'false'
- if _freedreno == 'true' and not with_atomics
- error('libdrm_freedreno requires atomics.')
- endif
- with_freedreno = _freedreno == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+with_tegra = false +_tegra = get_option('tegra') +if _tegra != 'false'
- if _tegra == 'true' and not with_atomics
- error('libdrm_tegra requires atomics.')
- endif
- with_tegra = _tegra == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+with_etnaviv = false +_etnaviv = get_option('etnaviv') +if _etnaviv != 'false'
- if _etnaviv == 'true' and not with_atomics
- error('libdrm_etnaviv requires atomics.')
- endif
- with_etnaviv = _etnaviv == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+with_exynos = false +_exynos = get_option('exynos') +if _exynos != 'false'
- with_exynos = _exynos == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+with_vc4 = false +_vc4 = get_option('vc4') +if _vc4 != 'false'
- with_vc4 = _vc4 == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
+endif
+# XXX: Aparently only freebsd and dragonfly bsd actually need this (and +# gnu/kfreebsd), not openbsd and netbsd +with_libkms = false +_libkms = get_option('libkms') +if _libkms != 'false'
- with_libkms = _libkms == 'true' or ['linux', 'freebsd', 'dragonfly'].contains(host_machine.system())
+endif
+if with_udev
- dep_udev = dependency('udev')
- config.set10('UDEV', true)
+else
- dep_udev = []
+endif
+# Among others FreeBSD does not have a separate dl library. +if not cc.has_function('dlsym')
- dep_dl = cc.find_library('dl', required : with_nouveau)
+else
- dep_dl = []
+endif +# clock_gettime might require -rt, or it might not. find out +if not cc.has_function('clock_gettime', prefix : '#define _GNU_SOURCE\n#include <time.h>')
- # XXX: untested
- dep_rt = cc.find_library('rt')
+else
- dep_rt = []
+endif +dep_m = cc.find_library('m', required : false) +if cc.has_header('sys/sysctl.h')
- config.set10('HAVE_SYS_SYSCTL_H', true)
+endif +if cc.has_header('sys/select.h')
- config.set10('HAVE_SYS_SELECT_H', true)
+endif +if cc.has_header_symbol('sys/sysmacros.h', 'major')
- config.set10('MAJOR_IN_SYSMACROS', true)
+elif cc.has_header_symbol('sys/mkdev.h', 'major')
- config.set10('MAJOR_IN_MKDEV', true)
+endif +if cc.has_function('open_memstream')
- config.set10('HAVE_OPEN_MEMSTREAM', true)
+endif
+warn_c_args = [] +foreach a : ['-Wall', '-Wextra', '-Wsign-compare',
'-Werror-implicit-function-declaration', '-Wpointer-arith',
'-Wwrite-strings', '-Wstrict-prototypes', '-Wmissing-prototypes',
'-Wmissing-declarations', '-Wnested-externs', '-Wpacked',
'-Wswitch-enum', '-Wmissing-format-attribute',
'-Wstrict-aliasing=2', '-Winit-self', '-Winline', '-Wshadow',
'-Wdeclaration-after-statement', '-Wold-style-definition']
- if cc.has_argument(a)
- warn_c_args += a
- endif
+endforeach +# GCC will never error for -Wno-*, so check for -W* then add -Wno-* to the list +# of options +foreach a : ['unused-parameter', 'attributes', 'long-long',
'missing-field-initializers']
- if cc.has_argument('-W@0@'.format(a))
- warn_c_args += '-Wno-@0@'.format(a)
- endif
+endforeach
+dep_pciaccess = dependency('pciaccess', version : '>= 0.10', required : with_intel) +dep_cunit = dependency('cunit', version : '>= 2.1', required : false) +dep_cairo = dependency('cairo', required : with_cairo_tests == 'true') +dep_valgrind = dependency('valgrind', required : with_valgrind == 'true')
+with_man_pages = get_option('man_pages') +prog_xslt = find_program('xsltproc', required : with_man_pages == 'true') +prog_sed = find_program('sed', required : with_man_pages == 'true') +manpage_style = 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl' +if prog_xslt.found()
- if run_command(prog_xslt, '--nonet', manpage_style).returncode() != 0
- if with_man_pages == 'true'
error('Manpage style sheet cannot be found')
- endif
- with_man_pages = 'false'
- endif
+endif +with_man_pages = with_man_pages != 'false' and prog_xslt.found() and prog_sed.found()
+# Used for tets +prog_bash = find_program('bash')
+if cc.compiles('''int foo_hidden(void) __attribute__((visibility(("hidden"))));''',
name : 'compiler supports __attribute__(("hidden"))')
- config.set10('HAVE_VISIBILITY', true)
+endif
+foreach t : [[with_intel, 'INTEL'], [with_vmwgfx, 'VMWGFX'],
[with_nouveau, 'NOUVEAU'], [with_omap, 'OMAP'],
[with_exynos, 'EXYNOS'], [with_freedreno, 'FREEDRENO'],
[with_tegra, 'TEGRA'], [with_vc4, 'VC4'],
[with_etnaviv, 'ETNAVIV'], [with_install_tests, 'INSTALL_TESTS']]
HAVE_INSTALL_TESTS is not used in C files, you can remove it from this list :)
- e = t[0]
- if e
Why the temp var?
- config.set10('HAVE_@0@'.format(t[1]), true)
I'll add -Wundef when I have some time and go through those so we can have config.set10('HAVE_@0@'.format(t[1]), t[0])
Then we can eventually switch to -Werror=undef :D
- endif
+endforeach +if with_freedreno_kgsl
- if not with_freedreno
- error('cannot enable freedreno-kgsl without freedreno support')
- endif
- config.set10('HAVE_FREEDRENO_KGSL', true)
+endif
+if with_amdgpu
- config.set10('HAVE_AMDGPU', true)
- if dep_cunit.found()
- config.set10('HAVE_CUNIT', true)
- endif
+endif
These two are actually unused, and should be removed from configure.ac :)
+if dep_cairo.found()
- config.set10('HAVE_CAIRO', true)
+endif +if dep_valgrind.found()
- config.set10('HAVE_VALGRIND', true)
+endif
+config.set10('_GNU_SOURCE', true) +config_file = configure_file(
- configuration : config,
- output : 'config.h',
+) +add_project_arguments('-DHAVE_CONFIG_H', language : 'c')
+inc_root = include_directories('.') +inc_drm = include_directories('include/drm')
+files_libdrm = files(
- 'xf86drm.c',
- 'xf86drmHash.c',
- 'xf86drmHash.h',
- 'xf86drmRandom.c',
- 'xf86drmRandom.h',
- 'xf86drmSL.c',
- 'xf86drmMode.c',
- 'xf86atomic.h',
- 'libdrm_macros.h',
- 'libdrm_lists.h',
- 'util_double_list.h',
- 'util_math.h',
+)
+libdrm = shared_library(
- 'drm',
- [files_libdrm, config_file],
- c_args : warn_c_args,
- dependencies : [dep_udev, dep_valgrind, dep_rt, dep_m],
- include_directories : inc_drm,
- version : '2.4.0',
- install : true,
+)
+ext_libdrm = declare_dependency(
- link_with : libdrm,
- include_directories : inc_drm,
+)
+install_headers('libsync.h', 'xf86drm.h', 'xf86drmMode.h') +install_headers(
- 'include/drm/drm.h', 'include/drm/drm_fourcc.h', 'include/drm/drm_mode.h',
- 'include/drm/drm_sarea.h', 'include/drm/i915_drm.h',
- 'include/drm/mach64_drm.h', 'include/drm/mga_drm.h',
- 'include/drm/nouveau_drm.h', 'include/drm/qxl_drm.h',
- 'include/drm/r128_drm.h', 'include/drm/radeon_drm.h',
- 'include/drm/amdgpu_drm.h', 'include/drm/savage_drm.h',
- 'include/drm/sis_drm.h', 'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h',
- 'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h',
Do we want to only install the headers for the libs that are enabled? (Not sure what autotools does)
- subdir : 'libdrm',
+) +if with_vmwgfx
- install_headers('include/drm/vmwgfx_drm.h', subdir : 'libdrm')
+endif
+pkg.generate(
- name : 'libdrm',
- libraries : libdrm,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- description : 'Userspace interface to kernel DRM services',
+)
+if with_libkms
- subdir('libkms')
+endif +if with_intel
- subdir('intel')
+endif +if with_nouveau
- subdir('nouveau')
+endif +if with_radeon
- subdir('radeon')
+endif +if with_amdgpu
- subdir('amdgpu')
+endif +if with_omap
- subdir('omap')
+endif +if with_exynos
- subdir('exynos')
+endif +if with_freedreno
- subdir('freedreno')
+endif +if with_tegra
- subdir('tegra')
+endif +if with_vc4
- subdir('vc4')
+endif +if with_etnaviv
- subdir('etnaviv')
+endif +if with_man_pages
- subdir('man')
+endif +subdir('data') +subdir('tests') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..7c2fa4f --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,38 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+option('libkms', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('intel', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('radeon', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('amdgpu', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('nouveau', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('vmwgfx', type : 'combo', value : 'true', choices : ['true', 'false', 'auto']) +option('omap', type : 'combo', value : 'false', choices : ['true', 'false', 'auto']) +option('exynos', type : 'combo', value : 'false', choices : ['true', 'false', 'auto']) +option('freedreno', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('tegra', type : 'combo', value : 'false', choices : ['true', 'false', 'auto']) +option('vc4', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('etnaviv', type : 'combo', value : 'false', choices : ['true', 'false', 'auto']) +option('cairo_tests', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('man_pages', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('valgrind', type : 'combo', value : 'auto', choices : ['true', 'false', 'auto']) +option('freedreno-kgls', type : 'boolean', value : false) +option('install_test_programs', type : 'boolean', value : false) +option('udev', type : 'boolean', value : false)
(as mentioned, descriptions would be good; copy/pasting the ones in configure.ac should be enough)
diff --git a/nouveau/meson.build b/nouveau/meson.build new file mode 100644 index 0000000..a50e4f7 --- /dev/null +++ b/nouveau/meson.build @@ -0,0 +1,65 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_nouveau = files(
- 'nouveau.c',
- 'pushbuf.c',
- 'bufctx.c',
- 'abi16.c',
- 'private.h',
+)
+libdrm_nouveau = shared_library(
- 'drm_nouveau',
- [files_nouveau, config_file],
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : dep_threads,
- version : '2.0.0',
- install : true,
+)
+ext_libdrm_nouveau = declare_dependency(
- link_with : [libdrm, libdrm_nouveau],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers('nouveau.h', subdir : 'libdrm/nouveau') +install_headers(
- 'nvif/class.h', 'nvif/cl0080.h', 'nvif/cl9097.h', 'nvif/if0002.h',
- 'nvif/if0003.h', 'nvif/ioctl.h', 'nvif/unpack.h',
- subdir : 'libdrm/nouveau/nvif'
+)
+pkg.generate(
- name : 'libdrm_nouveau',
- libraries : libdrm_nouveau,
- subdirs : ['.', 'nouveau'],
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to nouveau kernel DRM services',
+)
+test(
- 'nouveau-symbol-check',
- prog_bash,
- args : [files('nouveau-symbol-check'), libdrm_nouveau]
+) diff --git a/omap/meson.build b/omap/meson.build new file mode 100644 index 0000000..1881087 --- /dev/null +++ b/omap/meson.build @@ -0,0 +1,53 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+libdrm_omap = shared_library(
- 'drm_omap',
- [files('omap_drm.c'), config_file],
- include_directories : [inc_root, inc_drm],
- c_args : warn_c_args,
- link_with : libdrm,
- dependencies : [dep_pthread_stubs],
- version : '1.0.0',
- install : true,
+)
+ext_libdrm_omap = declare_dependency(
- link_with : [libdrm, libdrm_omap],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers('omap_drmif.h', subdir : 'libdrm') +install_headers('omap_drm.h', subdir : 'omap')
+pkg.generate(
- name : 'libdrm_omap',
- libraries : libdrm_omap,
- subdirs : ['.', 'libdrm', 'omap'],
- version : '0.6',
- requires_private : 'libdrm',
- description : 'Userspace interface to omap kernel DRM services',
+)
+test(
- 'omap-symbol-check',
- prog_bash,
- args : [files('omap-symbol-check'), libdrm_omap]
+) diff --git a/radeon/meson.build b/radeon/meson.build new file mode 100644 index 0000000..f41c5c4 --- /dev/null +++ b/radeon/meson.build @@ -0,0 +1,65 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_radeon = files(
- 'radeon_bo_gem.c',
- 'radeon_cs_gem.c',
- 'radeon_cs_space.c',
- 'radeon_bo.c',
- 'radeon_cs.c',
- 'radeon_surface.c',
+)
+libdrm_radeon = shared_library(
- 'drm_radeon',
- [files_radeon, config_file],
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : [dep_pthread_stubs],
- version : '1.0.1',
- install : true,
+)
+ext_libdrm_radeon = declare_dependency(
- link_with : [libdrm, libdrm_radeon],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers(
- 'radeon_bo.h', 'radeon_cs.h', 'radeon_surface.h', 'radeon_bo_gem.h',
- 'radeon_cs_gem.h', 'radeon_bo_int.h', 'radeon_cs_int.h', 'r600_pci_ids.h',
- subdir : 'libdrm'
+)
+pkg.generate(
- name : 'libdrm_radeon',
- libraries : libdrm_radeon,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to kernel DRM services for radeon',
+)
+test(
- 'radeon-symbol-check',
- prog_bash,
- args : [files('radeon-symbol-check'), libdrm_radeon]
+) diff --git a/tegra/meson.build b/tegra/meson.build new file mode 100644 index 0000000..568531c --- /dev/null +++ b/tegra/meson.build @@ -0,0 +1,52 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+libdrm_tegra = shared_library(
- 'drm_tegra',
- [files('private.h', 'tegra.c'), config_file],
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : [dep_pthread_stubs],
- c_args : warn_c_args,
- version : '0.0.0',
- install : true,
+)
+ext_libdrm_tegra = declare_dependency(
- link_with : [libdrm, libdrm_tegra],
- include_directories : [inc_drm, include_directories('.')],
+)
+install_headers('tegra.h', subdir : 'libdrm')
+pkg.generate(
- name : 'libdrm_tegra',
- libraries : libdrm_tegra,
- subdirs : ['.', 'libdrm'],
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to Tegra kernel DRM services',
+)
+test(
- 'tegra-symbol-check',
- prog_bash,
- args : [files('tegra-symbol-check'), libdrm_tegra]
+) diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build new file mode 100644 index 0000000..5a07ce2 --- /dev/null +++ b/tests/amdgpu/meson.build @@ -0,0 +1,40 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+files_amdgpu_test = files(
- 'amdgpu_test.c',
- 'basic_tests.c',
- 'bo_tests.c',
- 'cs_tests.c',
- 'vce_tests.c',
- 'uvd_enc_tests.c',
- 'vcn_tests.c',
- 'deadlock_tests.c',
- 'vm_tests.c',
+)
+amdgpu_test = executable(
- 'amdgpu_test',
- files_amdgpu_test,
- dependencies : [dep_cunit, dep_threads],
- include_directories : [inc_root, inc_drm, include_directories('../../amdgpu')],
Not a fan of going back up the tree, but... meh
- link_with : [libdrm, libdrm_amdgpu],
- install : with_install_tests,
+) diff --git a/tests/etnaviv/meson.build b/tests/etnaviv/meson.build new file mode 100644 index 0000000..32c5cee --- /dev/null +++ b/tests/etnaviv/meson.build @@ -0,0 +1,54 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+inc_etnaviv_tests = [inc_root, inc_drm, include_directories('../../etnaviv')]
+etnaviv_2d_test_files = files(
- 'cmdstream.xml.h',
- 'etnaviv_2d_test.c',
- 'state.xml.h',
- 'state_2d.xml.h',
- 'write_bmp.c',
- 'write_bmp.h',
+)
+etnaviv_2d_test = executable(
- 'etnaviv_2d_test',
- etnaviv_2d_test_files,
- include_directories : inc_etnaviv_tests,
- link_with : [libdrm, libdrm_etnaviv],
- install : with_install_tests,
+)
+etnaviv_cmd_stream_test = executable(
- 'etnaviv_cmd_stream_test',
- files('etnaviv_cmd_stream_test.c'),
- include_directories : inc_etnaviv_tests,
- link_with : [libdrm, libdrm_etnaviv],
- install : with_install_tests,
+)
+etnaviv_bo_cache_test = executable(
- 'etnaviv_bo_cache_test',
- files('etnaviv_bo_cache_test.c'),
- include_directories : inc_etnaviv_tests,
- link_with : [libdrm, libdrm_etnaviv],
- install : with_install_tests,
+) diff --git a/tests/exynos/meson.build b/tests/exynos/meson.build new file mode 100644 index 0000000..940c3ce --- /dev/null +++ b/tests/exynos/meson.build @@ -0,0 +1,54 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+inc_exynos = include_directories('../../exynos')
+if with_libkms
- exynos_fimg2d_test = executable(
- 'exynos_fimg2d_test',
- files('exynos_fimg2d_test.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm, inc_exynos,
include_directories('../../libkms')],
- link_with : [libdrm, libkms, libdrm_exynos],
- dependencies : dep_threads,
- install : with_install_tests,
- )
+endif
+exynos_fimg2d_perf = executable(
- 'exynos_fimg2d_perf',
- files('exynos_fimg2d_perf.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm, inc_exynos],
- link_with : [libdrm, libdrm_exynos],
- dependencies : dep_threads,
- install : with_install_tests,
+)
+exynos_fimg2d_event = executable(
- 'exynos_fimg2d_event',
- files('exynos_fimg2d_event.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_drm, inc_exynos],
- link_with : [libdrm, libdrm_exynos],
- dependencies : dep_threads,
- install : with_install_tests,
+) diff --git a/tests/kms/meson.build b/tests/kms/meson.build new file mode 100644 index 0000000..e991913 --- /dev/null +++ b/tests/kms/meson.build @@ -0,0 +1,54 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+libkms_test_files = files(
- 'libkms-test.h',
- 'libkms-test-crtc.c',
- 'libkms-test-device.c',
- 'libkms-test-framebuffer.c',
- 'libkms-test-plane.c',
- 'libkms-test-screen.c',
+)
+libkms_test = static_library(
- 'kms-test',
- libkms_test_files,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+)
+kms_steal_crtc = executable(
- 'kms-steal-crtc',
- files('kms-steal-crtc.c'),
- dependencies : dep_cairo,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : [libkms_test, libutil],
- install : with_install_tests,
+)
+kms_universal_planes = executable(
- 'kms-universal-lanes',
- files('kms-universal-planes.c'),
- dependencies : dep_cairo,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : [libkms_test],
- install : with_install_tests,
+) diff --git a/tests/kmstest/meson.build b/tests/kmstest/meson.build new file mode 100644 index 0000000..f713f26 --- /dev/null +++ b/tests/kmstest/meson.build @@ -0,0 +1,28 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+kmstest = executable(
- 'kmstest',
- files('main.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_tests, include_directories('../../libkms'), inc_drm],
- link_with : [libutil, libkms, libdrm],
- install : with_install_tests,
+) diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 0000000..960ff7b --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,85 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+inc_tests = include_directories('.')
+subdir('util') +subdir('kms') +subdir('modeprint') +subdir('proptest') +subdir('vbltest') +if with_libkms
- subdir('kmstest')
+endif +if with_radeon
- subdir('radeon')
+endif +if with_amdgpu and dep_cunit.found()
I feel like the dep_cunit.found() condition belongs inside tests/amdgpu/meson.build, around the relevant test.
- subdir('amdgpu')
+endif +if with_exynos
- subdir('exynos')
+endif +if with_tegra
- subdir('tegra')
+endif +if with_etnaviv
- subdir('etnaviv')
+endif +if with_nouveau
- subdir('nouveau')
+endif
+drmsl = executable(
- 'drmsl',
- files('drmsl.c'),
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+)
+hash = executable(
- 'hash',
- files('hash.c'),
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+)
+random = executable(
- 'random',
- files('random.c'),
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+)
+drmdevice = executable(
- 'drmdevice',
- files('drmdevice.c'),
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+)
+test('random', random, timeout : 240) +test('hash', hash) +test('drmsl', drmsl) +test('drmdevice', drmdevice) diff --git a/tests/modeprint/meson.build b/tests/modeprint/meson.build new file mode 100644 index 0000000..5f0eb24 --- /dev/null +++ b/tests/modeprint/meson.build @@ -0,0 +1,29 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+modeprint = executable(
- 'modeprint',
- files('modeprint.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : libdrm,
- dependencies : dep_threads,
- install : with_install_tests,
+) diff --git a/tests/nouveau/meson.build b/tests/nouveau/meson.build new file mode 100644 index 0000000..f5d73c1 --- /dev/null +++ b/tests/nouveau/meson.build @@ -0,0 +1,30 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+threaded = executable(
- 'threaded',
- files('threaded.c'),
- dependencies : [dep_dl, dep_threads],
- include_directories : [inc_root, inc_drm, include_directories('../../nouveau')],
- link_with : [libdrm, libdrm_nouveau],
- c_args : warn_c_args,
+)
+test('threaded', threaded) diff --git a/tests/proptest/meson.build b/tests/proptest/meson.build new file mode 100644 index 0000000..dcd724f --- /dev/null +++ b/tests/proptest/meson.build @@ -0,0 +1,30 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+proptest_files = files('proptest.c')
+proptest = executable(
- 'proptest',
- files('proptest.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : [libdrm, libutil],
- install : with_install_tests,
+) diff --git a/tests/radeon/meson.build b/tests/radeon/meson.build new file mode 100644 index 0000000..54db231 --- /dev/null +++ b/tests/radeon/meson.build @@ -0,0 +1,27 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+radeon_ttm = executable(
- 'radeon_ttm',
- files('rbo.c', 'rbo.h', 'radeon_ttm.c'),
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- c_args : warn_c_args,
+) diff --git a/tests/tegra/meson.build b/tests/tegra/meson.build new file mode 100644 index 0000000..9c74ac4 --- /dev/null +++ b/tests/tegra/meson.build @@ -0,0 +1,27 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+openclose = executable(
- 'openclose',
- files('openclose.c'),
- include_directories : [inc_root, inc_drm, include_directories('../../tegra')],
- c_args : warn_c_args,
- link_with : [libdrm, libdrm_tegra],
+) diff --git a/tests/util/meson.build b/tests/util/meson.build new file mode 100644 index 0000000..a0e1d3c --- /dev/null +++ b/tests/util/meson.build @@ -0,0 +1,37 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+util_files = files(
- 'common.h',
- 'format.c',
- 'format.h',
- 'kms.c',
- 'kms.h',
- 'pattern.c',
- 'pattern.h',
+)
+libutil = static_library(
- 'util',
- [util_files, config_file],
- include_directories : [inc_root, inc_drm],
- link_with : libdrm,
- dependencies : dep_cairo
+) diff --git a/tests/vbltest/meson.build b/tests/vbltest/meson.build new file mode 100644 index 0000000..4fb1ad3 --- /dev/null +++ b/tests/vbltest/meson.build @@ -0,0 +1,28 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+vbltest = executable(
- 'vbltest',
- files('vbltest.c'),
- c_args : warn_c_args,
- include_directories : [inc_root, inc_tests, inc_drm],
- link_with : [libdrm, libutil],
- install : with_install_tests,
+) diff --git a/vc4/meson.build b/vc4/meson.build new file mode 100644 index 0000000..0136987 --- /dev/null +++ b/vc4/meson.build @@ -0,0 +1,28 @@ +# Copyright © 2017 Intel Corporation
+# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE.
+install_headers('vc4_packet.h', 'vc4_qpu_defines.h', subdir : 'libdrm')
+pkg.generate(
- name : 'libdrm_vc4',
- version : meson.project_version(),
- requires_private : 'libdrm',
- description : 'Userspace interface to vc4 kernel DRM services',
+)
git-series 0.9.1
I think everything else looks good; thanks for the effort!