neatvnc/meson.build

143 lines
2.8 KiB
Meson
Raw Normal View History

2019-10-12 13:19:49 +00:00
project(
'neatvnc',
'c',
2020-12-06 14:02:50 +00:00
version: '0.4.0',
2019-10-12 13:19:49 +00:00
license: 'ISC',
default_options: [
'c_std=gnu11',
],
)
buildtype = get_option('buildtype')
2020-04-01 22:49:58 +00:00
host_system = host_machine.system()
c_args = [
2020-07-26 11:43:00 +00:00
'-DPROJECT_VERSION="@0@"'.format(meson.project_version()),
2019-10-12 13:19:49 +00:00
'-D_GNU_SOURCE',
'-fvisibility=hidden',
'-Wmissing-prototypes',
]
if buildtype != 'debug' and buildtype != 'debugoptimized'
c_args += '-DNDEBUG'
endif
2019-10-12 13:19:49 +00:00
2020-07-26 11:43:00 +00:00
git = find_program('git', native: true, required: false)
if git.found()
git_describe = run_command([git, 'describe', '--tags', '--long'])
git_branch = run_command([git, 'rev-parse', '--abbrev-ref', 'HEAD'])
if git_describe.returncode() == 0 and git_branch.returncode() == 0
c_args += '-DGIT_VERSION="@0@ (@1@)"'.format(
git_describe.stdout().strip(),
git_branch.stdout().strip(),
)
endif
endif
libdrm_include_dir = dependency('libdrm').get_variable(pkgconfig: 'includedir')
c_args += '-I=' + libdrm_include_dir
add_project_arguments(c_args, language: 'c')
2019-10-13 12:16:24 +00:00
2019-10-12 13:19:49 +00:00
cc = meson.get_compiler('c')
libm = cc.find_library('m', required: false)
pixman = dependency('pixman-1')
libturbojpeg = dependency('libturbojpeg', required: get_option('jpeg'))
gnutls = dependency('gnutls', required: get_option('tls'))
zlib = dependency('zlib')
2021-09-12 18:01:58 +00:00
gbm = dependency('gbm', required: get_option('gbm'))
2019-10-12 13:19:49 +00:00
2020-03-16 20:09:22 +00:00
aml_project = subproject('aml', required: false)
if aml_project.found()
aml = aml_project.get_variable('aml_dep')
else
aml = dependency('aml')
endif
inc = include_directories('include')
2019-10-12 13:19:49 +00:00
sources = [
'src/server.c',
'src/vec.c',
'src/zrle.c',
'src/raw-encoding.c',
'src/pixels.c',
'src/fb.c',
2021-08-29 16:30:00 +00:00
'src/fb_pool.c',
2020-01-25 15:29:25 +00:00
'src/rcbuf.c',
'src/stream.c',
'src/display.c',
'src/tight.c',
2020-09-26 16:10:25 +00:00
'src/enc-util.c',
'src/qnum-to-evdev.c',
2019-10-12 13:19:49 +00:00
]
dependencies = [
libm,
pixman,
2020-03-16 20:09:22 +00:00
aml,
zlib,
2019-10-12 13:19:49 +00:00
]
2019-12-31 10:13:21 +00:00
config = configuration_data()
if libturbojpeg.found()
dependencies += libturbojpeg
config.set('HAVE_JPEG', true)
2019-12-31 10:13:21 +00:00
endif
if gnutls.found()
dependencies += gnutls
config.set('ENABLE_TLS', true)
endif
if host_system == 'linux' and get_option('systemtap') and cc.has_header('sys/sdt.h')
2020-04-01 22:49:58 +00:00
config.set('HAVE_USDT', true)
endif
2021-09-12 18:01:58 +00:00
if gbm.found()
dependencies += gbm
config.set('HAVE_GBM', true)
endif
2019-12-31 10:13:21 +00:00
configure_file(
output: 'config.h',
configuration: config,
)
2020-07-22 04:37:35 +00:00
neatvnc = library(
2019-10-12 13:19:49 +00:00
'neatvnc',
sources,
2019-10-12 14:47:07 +00:00
version: '0.0.0',
2019-10-12 13:19:49 +00:00
dependencies: dependencies,
include_directories: inc,
install: true,
)
neatvnc_dep = declare_dependency(
include_directories: inc,
link_with: neatvnc,
)
2020-02-09 11:41:43 +00:00
if get_option('examples')
subdir('examples')
endif
2020-05-27 21:59:34 +00:00
if get_option('benchmarks')
subdir('bench')
endif
2019-10-12 13:19:49 +00:00
install_headers('include/neatvnc.h')
2019-10-12 14:47:07 +00:00
pkgconfig = import('pkgconfig')
pkgconfig.generate(
libraries: neatvnc,
2019-10-12 14:47:07 +00:00
version: meson.project_version(),
filebase: meson.project_name(),
name: meson.project_name(),
description: 'A Neat VNC server library'
)