meson.build 3,93 Kio
project( 'lektor'
, 'c'
, version: '0.1.0'
, license: 'ISC'
, default_options: [ 'c_std=c18'
, 'cpp_std=c++17'
, 'warning_level=3'
, 'werror=true'
, 'strip=true'
, 'debug=true'
, 'buildtype=debug'
, 'b_sanitize=undefined'
]
)
libdl = meson.get_compiler('c').find_library('dl')
dep_x11 = dependency('x11', required : false)
dep_mpv = dependency('mpv', required : false)
dep_sdl = dependency('sdl2', required : false)
## Sources for the server
core_sources = [ 'src/mkv/bufferfd.c'
, 'src/mkv/write.c'
, 'src/commands.c'
, 'src/database/stickers.c'
, 'src/database/open.c'
, 'src/database/queue.c'
, 'src/database/update.c'
, 'src/database/find.c'
, 'src/database/config.c'
, 'src/database/playlist.c'
, 'src/database/user.c'
, 'src/mkv/mkv.c'
, 'src/net/command.c'
, 'src/net/listen.c'
, 'src/net/message.c'
, 'src/config.c'
, 'src/utils.c'
, 'src/uri.c'
, 'src/ini/ini.c'
, 'src/repo/curl.c'
, 'src/repo/async.c'
, 'src/thread.c'
]
# Global includes
includes = include_directories('inc')
# Server
core_deps = [ dependency('sqlite3', version : '>= 3.31.0')
, dependency('libcurl')
, dependency('json-c')
, dependency('threads', required : true)
]
lib = static_library( meson.project_name()
, files(core_sources)
, include_directories : includes
, dependencies : [ core_deps, libdl ]
)
bin_deps = core_deps + [ declare_dependency( link_with: lib, include_directories: includes) ]
srv = executable( meson.project_name() + 'd'
, files('src/main/server.c')
, include_directories : includes
, dependencies : [ bin_deps ]
, install : true
)
# Admin executable
metadata = executable( 'lktadm'
, files('src/main/lktadm.c', 'src/cmd.c')
, include_directories : includes
, dependencies : bin_deps
, install : true
)
# Client executable
lkt = executable( 'lkt'
, files('src/main/lkt.c', 'src/cmd.c')
, include_directories : includes
, install : true
)
# X11 window module
if dep_x11.found() and dep_mpv.found()
lib_mod_x11 = shared_library ( '_module_x11'
, files(['src/module/module_x11.c', 'src/module/mpv.c'])
, include_directories : includes
, dependencies : [ dep_x11, dep_mpv ]
, link_with : lib
, install : true
, install_dir : 'lib/lektor'
)
endif
# SQL2 window module
if dep_sdl.found() and dep_mpv.found()
lib_mod_sdl = shared_library ( '_module_sdl2'
, files(['src/module/module_sdl2.c', 'src/module/mpv.c'])
, include_directories : includes
, dependencies : [ dep_sdl, dep_mpv ]
, link_with : lib
, install : true
, install_dir : 'lib/lektor'
)
endif
# Install
install_data('scripts/init.sql', install_dir : 'share/lektor')
install_man('doc/lektord.1')
meson.add_install_script('scripts/install.sh')