mirror of
https://github.com/albfan/miraclecast.git
synced 2025-02-12 14:11:56 +00:00
Add meson build system
Use it as: $ meson build $ cd build $ ninja build $ ninja test $ sudo ninja install
This commit is contained in:
parent
fe9a39bee8
commit
6b5907ad45
11 changed files with 190 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -41,3 +41,4 @@ cmake_install.cmake
|
||||||
CMakeCache.txt
|
CMakeCache.txt
|
||||||
libmiracle-shared.a
|
libmiracle-shared.a
|
||||||
install_manifest.txt
|
install_manifest.txt
|
||||||
|
/build/
|
||||||
|
|
45
meson.build
Normal file
45
meson.build
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
project('Miraclecast',
|
||||||
|
'c',
|
||||||
|
version: '1',
|
||||||
|
meson_version: '>=0.39',
|
||||||
|
default_options: ['buildtype=debugoptimized', 'c_std=gnu11']
|
||||||
|
)
|
||||||
|
|
||||||
|
add_project_arguments('-D_GNU_SOURCE', language: 'c')
|
||||||
|
|
||||||
|
conf_data = configuration_data()
|
||||||
|
conf_data.set_quoted('BUILD_BINDIR',
|
||||||
|
join_paths(get_option('prefix'), get_option('bindir'))
|
||||||
|
)
|
||||||
|
conf_data.set_quoted('PACKAGE_STRING',
|
||||||
|
'@0@ @1@'.format(meson.project_name(), meson.project_version())
|
||||||
|
)
|
||||||
|
configure_file(output: 'config.h',
|
||||||
|
configuration: conf_data
|
||||||
|
)
|
||||||
|
|
||||||
|
c_compiler = meson.get_compiler('c')
|
||||||
|
readline = c_compiler.find_library('readline', required: false)
|
||||||
|
if readline.found()
|
||||||
|
add_project_arguments('-DHAVE_READLINE', language: 'c')
|
||||||
|
endif
|
||||||
|
|
||||||
|
if get_option('build-enable-debug')
|
||||||
|
add_project_arguments('-DBUILD_ENABLE_DEBUG', language: 'c')
|
||||||
|
endif
|
||||||
|
|
||||||
|
if get_option('rely-udev')
|
||||||
|
add_project_arguments('-DRELY_UDEV', language: 'c')
|
||||||
|
endif
|
||||||
|
|
||||||
|
glib2 = dependency('glib-2.0')
|
||||||
|
udev = dependency('libudev')
|
||||||
|
libsystemd = dependency('libsystemd')
|
||||||
|
|
||||||
|
subdir('src')
|
||||||
|
subdir('res')
|
||||||
|
|
||||||
|
if get_option('build-tests')
|
||||||
|
subdir('test')
|
||||||
|
endif
|
||||||
|
|
12
meson_options.txt
Normal file
12
meson_options.txt
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
option('build-enable-debug',
|
||||||
|
type: 'boolean',
|
||||||
|
value: true,
|
||||||
|
description: 'Enable Debug')
|
||||||
|
option('rely-udev',
|
||||||
|
type: 'boolean',
|
||||||
|
value: false,
|
||||||
|
description: 'Rely in udev tag to select device')
|
||||||
|
option('build-tests',
|
||||||
|
type: 'boolean',
|
||||||
|
value: true,
|
||||||
|
description: 'Enable TEST')
|
8
res/meson.build
Normal file
8
res/meson.build
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
install_data(
|
||||||
|
'org.freedesktop.miracle.conf',
|
||||||
|
install_dir: join_paths(get_option('sysconfdir'), 'dbus-1', 'system.d')
|
||||||
|
)
|
||||||
|
|
||||||
|
install_data('miracle-gst', 'gstplayer', 'uibc-viewer',
|
||||||
|
install_dir: get_option('bindir'),
|
||||||
|
install_mode: 'rwxr-xr-x')
|
24
src/ctl/meson.build
Normal file
24
src/ctl/meson.build
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
inc = include_directories('../..')
|
||||||
|
deps = [libsystemd, libmiracle_shared_dep, glib2]
|
||||||
|
if readline.found()
|
||||||
|
deps += readline
|
||||||
|
endif
|
||||||
|
|
||||||
|
miracle_wifictl_srcs = ['ctl-cli.c', 'ctl-wifi.c', 'wifictl.c']
|
||||||
|
executable('miracle-wifictl', miracle_wifictl_srcs,
|
||||||
|
install: true,
|
||||||
|
include_directories: inc,
|
||||||
|
dependencies: deps
|
||||||
|
)
|
||||||
|
|
||||||
|
miracle_sinkctl_srcs = ['ctl-cli.c',
|
||||||
|
'ctl-sink.c',
|
||||||
|
'ctl-wifi.c',
|
||||||
|
'sinkctl.c',
|
||||||
|
'wfd.c'
|
||||||
|
]
|
||||||
|
executable('miracle-sinkctl', miracle_sinkctl_srcs,
|
||||||
|
install: true,
|
||||||
|
include_directories: inc,
|
||||||
|
dependencies: deps
|
||||||
|
)
|
11
src/dhcp/meson.build
Normal file
11
src/dhcp/meson.build
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
miracle_dhcp_srcs = ['dhcp.c',
|
||||||
|
'common.c',
|
||||||
|
'ipv4ll.c',
|
||||||
|
'client.c',
|
||||||
|
'server.c'
|
||||||
|
]
|
||||||
|
executable('miracle-dhcp', miracle_dhcp_srcs,
|
||||||
|
install: true,
|
||||||
|
include_directories: include_directories('../..'),
|
||||||
|
dependencies: [glib2, udev, libmiracle_shared_dep]
|
||||||
|
)
|
11
src/meson.build
Normal file
11
src/meson.build
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
subdir('shared')
|
||||||
|
subdir('wifi')
|
||||||
|
subdir('dhcp')
|
||||||
|
subdir('ctl')
|
||||||
|
subdir('uibc')
|
||||||
|
|
||||||
|
executable('miracled', 'miracled.c',
|
||||||
|
dependencies: libmiracle_shared_dep,
|
||||||
|
include_directories: include_directories('..'),
|
||||||
|
install: true
|
||||||
|
)
|
22
src/shared/meson.build
Normal file
22
src/shared/meson.build
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
libmiracle_shared = static_library('miracle-shared',
|
||||||
|
'rtsp.h',
|
||||||
|
'rtsp.c',
|
||||||
|
'shl_dlist.h',
|
||||||
|
'shl_htable.h',
|
||||||
|
'shl_htable.c',
|
||||||
|
'shl_log.h',
|
||||||
|
'shl_log.c',
|
||||||
|
'shl_macro.h',
|
||||||
|
'shl_ring.h',
|
||||||
|
'shl_ring.c',
|
||||||
|
'shl_util.h',
|
||||||
|
'shl_util.c',
|
||||||
|
'util.h',
|
||||||
|
'wpas.h',
|
||||||
|
'wpas.c',
|
||||||
|
dependencies: [libsystemd]
|
||||||
|
)
|
||||||
|
libmiracle_shared_dep = declare_dependency(
|
||||||
|
include_directories: include_directories('.'),
|
||||||
|
link_with: libmiracle_shared
|
||||||
|
)
|
5
src/uibc/meson.build
Normal file
5
src/uibc/meson.build
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
m = c_compiler.find_library('m', required: false)
|
||||||
|
executable('miracle-uibcctl', 'miracle-uibcctl.h', 'miracle-uibcctl.c',
|
||||||
|
install: true,
|
||||||
|
dependencies: [m, libmiracle_shared_dep]
|
||||||
|
)
|
14
src/wifi/meson.build
Normal file
14
src/wifi/meson.build
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
inc = include_directories('../..')
|
||||||
|
miracle_wifid_src = ['wifid.h',
|
||||||
|
'wifid.c',
|
||||||
|
'wifid-dbus.c',
|
||||||
|
'wifid-link.c',
|
||||||
|
'wifid-peer.c',
|
||||||
|
'wifid-supplicant.c'
|
||||||
|
]
|
||||||
|
executable('miracle-wifid', miracle_wifid_src,
|
||||||
|
include_directories: inc,
|
||||||
|
install: true,
|
||||||
|
dependencies: [udev, glib2, libsystemd, libmiracle_shared_dep]
|
||||||
|
)
|
||||||
|
|
37
test/meson.build
Normal file
37
test/meson.build
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
check = dependency('check', required: false)
|
||||||
|
deps = [udev, glib2, check, libsystemd, libmiracle_shared_dep]
|
||||||
|
|
||||||
|
if check.found()
|
||||||
|
test_rtsp = executable('test_rtsp', 'test_rtsp.c', dependencies: deps)
|
||||||
|
|
||||||
|
test_wpas = executable('test_wpas', 'test_wpas.c', dependencies: deps)
|
||||||
|
|
||||||
|
test_valgrind = executable('test_valgrind',
|
||||||
|
'test_valgrind.c',
|
||||||
|
dependencies: deps
|
||||||
|
)
|
||||||
|
|
||||||
|
valgrind = find_program('valgrind')
|
||||||
|
|
||||||
|
test('rtsp test', test_rtsp)
|
||||||
|
test('wpas test', test_wpas)
|
||||||
|
test('valgrind test', test_valgrind)
|
||||||
|
|
||||||
|
# set(VALGRIND CK_FORK=no valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --leak-resolution=high --error-exitcode=1 --suppressions=${CMAKE_SOURCE_DIR}/test.supp)
|
||||||
|
#
|
||||||
|
# add_custom_target(memcheck-verify
|
||||||
|
# DEPENDS test_rtsp test_wpas test_valgrind
|
||||||
|
# COMMAND ${VALGRIND} --log-file=/dev/null ./test_valgrind >/dev/null |
|
||||||
|
# test 1 = $$?
|
||||||
|
# COMMENT "verify memcheck")
|
||||||
|
#
|
||||||
|
# add_custom_target(memcheck
|
||||||
|
# DEPENDS memcheck-verify
|
||||||
|
# COMMAND for i in $(MEMTESTS) |
|
||||||
|
# do |
|
||||||
|
# ${VALGRIND} --log-file=${CMAKE_SOURCE_DIR}/$$i.memlog |
|
||||||
|
# ${CMAKE_SOURCE_DIR}/$$i >/dev/null || (echo "memcheck failed on: $$i" ; exit 1) ; |
|
||||||
|
# done
|
||||||
|
# SOURCES test_rtsp test_valgrind test_wpas
|
||||||
|
# COMMENT "verify memcheck")
|
||||||
|
endif
|
Loading…
Reference in a new issue