aboutsummaryrefslogtreecommitdiffhomepage
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build46
1 files changed, 35 insertions, 11 deletions
diff --git a/meson.build b/meson.build
index 4a79378..5a514fe 100644
--- a/meson.build
+++ b/meson.build
@@ -1,10 +1,10 @@
-project('gpu-screen-recorder', ['c', 'cpp'], version : '5.15.3', default_options : ['warning_level=2', 'cpp_std=c++17'])
+project('gpu-screen-recorder', 'c', version : '6.0.0', default_options : ['c_std=gnu11', 'warning_level=2'])
-add_project_arguments('-Wshadow', language : ['c', 'cpp'])
+add_project_arguments('-Wshadow', language : 'c')
if get_option('buildtype') == 'debug'
- add_project_arguments('-g3', language : ['c', 'cpp'])
+ add_project_arguments('-g3', language : 'c')
elif get_option('buildtype') == 'release'
- add_project_arguments('-DNDEBUG', language : ['c', 'cpp'])
+ add_project_arguments('-DNDEBUG', language : 'c')
endif
src = [
@@ -30,6 +30,24 @@ src = [
'src/replay_buffer/replay_buffer.c',
'src/replay_buffer/replay_buffer_ram.c',
'src/replay_buffer/replay_buffer_disk.c',
+ 'src/log.c',
+ 'src/json.c',
+ 'src/ffmpeg_utils.c',
+ 'src/recorder/audio_codec.c',
+ 'src/recorder/video_codec.c',
+ 'src/recorder/codec_select.c',
+ 'src/recorder/windowing.c',
+ 'src/recorder/capture_source.c',
+ 'src/recorder/capture_setup.c',
+ 'src/recorder/audio_input.c',
+ 'src/recorder/audio_capture.c',
+ 'src/recorder/recording_clock.c',
+ 'src/recorder/muxer.c',
+ 'src/recorder/replay_save.c',
+ 'src/recorder/screenshot.c',
+ 'src/recorder/recorder.c',
+ 'src/cli/commands.c',
+ 'src/cli/ipc.c',
'src/egl.c',
'src/cuda.c',
'src/window_texture.c',
@@ -45,8 +63,8 @@ src = [
'src/defs.c',
'src/plugins.c',
'src/wayland_host_bridge.c',
- 'src/sound.cpp',
- 'src/main.cpp',
+ 'src/sound.c',
+ 'src/cli/main.c',
]
subdir('protocol')
@@ -55,6 +73,11 @@ src += protocol_src
cc = meson.get_compiler('c')
m_dep = cc.find_library('m', required : true)
+# Overrides the libav* dependencies below with a statically linked ffmpeg built from source.
+if get_option('ffmpeg_static') == true
+ subproject('ffmpeg')
+endif
+
dep = [
dependency('threads'),
m_dep,
@@ -90,7 +113,7 @@ if get_option('portal') == true
'src/dbus.c',
'src/pipewire_video.c',
]
- add_project_arguments('-DGSR_PORTAL', language : ['c', 'cpp'])
+ add_project_arguments('-DGSR_PORTAL', language : 'c')
uses_pipewire = true
endif
@@ -98,7 +121,7 @@ if get_option('app_audio') == true
src += [
'src/pipewire_audio.c',
]
- add_project_arguments('-DGSR_APP_AUDIO', language : ['c', 'cpp'])
+ add_project_arguments('-DGSR_APP_AUDIO', language : 'c')
uses_pipewire = true
endif
@@ -108,16 +131,17 @@ if uses_pipewire == true
dependency('libspa-0.2'),
dependency('dbus-1'),
]
- add_project_arguments('-DGSR_DBUS', language : ['c', 'cpp'])
+ add_project_arguments('-DGSR_DBUS', language : 'c')
endif
-add_project_arguments('-DGSR_VERSION="' + meson.project_version() + '"', language: ['c', 'cpp'])
+add_project_arguments('-DGSR_VERSION="' + meson.project_version() + '"', language: 'c')
executable('gsr-kms-server', 'kms/server/kms_server.c', dependencies : dependency('libdrm'), c_args : '-fstack-protector-all', install : true)
+executable('gsr-cli', ['tools/gsr-cli/main.c', 'src/json.c', 'src/log.c'], install : true)
executable('gpu-screen-recorder', src, dependencies : dep, install : true)
install_headers('plugin/plugin.h', install_dir : 'include/gsr')
-install_man('gpu-screen-recorder.1', 'gsr-kms-server.1')
+install_man('gpu-screen-recorder.1', 'gsr-cli.1', 'gsr-kms-server.1')
install_subdir('scripts', install_dir: 'share/gpu-screen-recorder')
if get_option('systemd') == true