Update meson.build file

- Bump meson version requirement
- Bump cpp_std to gnu++20
- Bump copyright years to 2020-2025
- Add spdlog cmake options
- Bump wx version requirement to 3.2.8
- Bump sqlite3 version requirement to 3.45.1
- Bump yaml-cpp version requirement to 0.8.0
This commit is contained in:
apoorv569 2025-09-24 16:06:39 +05:30
parent fd2789d401
commit 3f2bb4551c
1 changed files with 26 additions and 14 deletions

40
meson.build Executable file → Normal file
View File

@ -21,12 +21,12 @@ project('SampleHive',
'cpp', 'cpp',
version : 'v0.9.0_alpha.1', version : 'v0.9.0_alpha.1',
license : 'GPL v3', license : 'GPL v3',
meson_version: '>= 0.58.0', meson_version: '>= 1.5.2',
default_options : ['warning_level=2', default_options : ['warning_level=2',
'buildtype=debugoptimized', 'buildtype=debugoptimized',
'b_lto=true', 'b_lto=true',
'b_lto_threads=2', 'b_lto_threads=2',
'cpp_std=gnu++14']) 'cpp_std=gnu++20'])
# Create configuration data # Create configuration data
config_data = configuration_data() config_data = configuration_data()
@ -39,7 +39,7 @@ project_name = meson.project_name()
project_license = meson.project_license() project_license = meson.project_license()
project_version = meson.project_version() project_version = meson.project_version()
project_author = 'Apoorv' project_author = 'Apoorv'
project_copyright_years = '2020-2021' project_copyright_years = '2020-2025'
project_description = 'A simple, modern audio sample browser/manager for GNU/Linux.' project_description = 'A simple, modern audio sample browser/manager for GNU/Linux.'
project_website = 'http://samplehive.gitlab.io/website' project_website = 'http://samplehive.gitlab.io/website'
@ -101,16 +101,17 @@ wx_opts = cmake.subproject_options()
wx_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON', wx_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON',
'CMAKE_INSTALL_PREFIX': prefix, 'CMAKE_INSTALL_PREFIX': prefix,
'CMAKE_BUILD_TYPE': 'Release', 'CMAKE_BUILD_TYPE': 'Release',
'wxBUILD_SHARED': 'ON', 'wxBUILD_SHARED': 'OFF',
'wxBUILD_MONOLITHIC': 'OFF', 'wxBUILD_MONOLITHIC': 'OFF',
'wxBUILD_BENCHMARKS': 'OFF', 'wxBUILD_BENCHMARKS': 'OFF',
'wxBUILD_PRECOMP': 'OFF', 'wxBUILD_PRECOMP': 'OFF',
'wxBUILD_TESTS': 'OFF', 'wxBUILD_TESTS': 'OFF',
'wxBUILD_SAMPLES': 'OFF', 'wxBUILD_SAMPLES': 'OFF',
'wxBUILD_DEMOS': 'OFF', 'wxBUILD_DEMOS': 'OFF',
'wxBUILD_COMPATIBILITY': '3.0', 'wxBUILD_COMPATIBILITY': '3.2',
'wxBUILD_TOOLKIT': wx_toolkit, 'wxBUILD_TOOLKIT': wx_toolkit,
'wxUSE_UNICODE': 'ON', 'wxUSE_UNICODE': 'ON',
'wxUSE_GUI': 'ON',
'wxUSE_AUI': 'OFF', 'wxUSE_AUI': 'OFF',
'wxUSE_XML': 'OFF', 'wxUSE_XML': 'OFF',
'wxUSE_XRC': 'ON', 'wxUSE_XRC': 'ON',
@ -126,6 +127,17 @@ wx_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON',
'wxUSE_LIBSDL': 'OFF', 'wxUSE_LIBSDL': 'OFF',
'wxUSE_MEDIACTRL': 'ON'}) 'wxUSE_MEDIACTRL': 'ON'})
spdlog_opts = cmake.subproject_options()
spdlog_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON',
'CMAKE_INSTALL_PREFIX': prefix,
'CMAKE_BUILD_TYPE': 'Release',
'SPDLOG_USE_STD_FORMAT': 'ON',
'SPDLOG_BUILD_EXAMPLE': 'OFF',
'SPDLOG_BUILD_EXAMPLE_HO': 'OFF',
'SPDLOG_BUILD_TESTS': 'OFF',
'SPDLOG_BUILD_TESTS_HO': 'OFF',
'SPDLOG_BUILD_BENCH': 'OFF'})
taglib_opts = cmake.subproject_options() taglib_opts = cmake.subproject_options()
taglib_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON', taglib_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON',
'CMAKE_INSTALL_PREFIX': prefix, 'CMAKE_INSTALL_PREFIX': prefix,
@ -202,7 +214,7 @@ src = [
include_dirs = include_directories('src') include_dirs = include_directories('src')
# Static link C/C++ libs if platform is windows # Static link C and CXX libs if platform is windows
link_args = [] link_args = []
if host_sys == 'windows' if host_sys == 'windows'
@ -210,7 +222,7 @@ if host_sys == 'windows'
endif endif
# Dependencies # Dependencies
wx = dependency('wxwidgets', version: '>=3.2.1', required: false) wx = dependency('wxwidgets', version: '>=3.2.8', required: true)
wx_cxx_flags = [] wx_cxx_flags = []
wx_libs = [] wx_libs = []
@ -230,7 +242,7 @@ if not wx.found()
src += rc_file src += rc_file
endif endif
else else
wxconfig = find_program(['wx-config', 'wx-config-gtk3', 'wx-config-3.1']) wxconfig = find_program(['wx-config', 'wx-config-gtk3', 'wx-config-3.2'])
wx_modules = ['media', 'std'] wx_modules = ['media', 'std']
foreach module : wx_modules foreach module : wx_modules
@ -239,7 +251,7 @@ else
endforeach endforeach
endif endif
taglib = dependency('taglib', version: '>=1.12', required: false) taglib = dependency('taglib', version: '>=1.12', required: true)
if not taglib.found() if not taglib.found()
taglib_subproject = cmake.subproject('taglib', options: taglib_opts) taglib_subproject = cmake.subproject('taglib', options: taglib_opts)
@ -248,7 +260,7 @@ else
config_data.set('USE_SYSTEM_INCLUDE_PATH', 1) config_data.set('USE_SYSTEM_INCLUDE_PATH', 1)
endif endif
sqlite3 = dependency('sqlite3', version: '>=3.31.1', required: false) sqlite3 = dependency('sqlite3', version: '>=3.45.1', required: true)
if not sqlite3.found() if not sqlite3.found()
sqlite3_subproject = subproject('sqlite3') sqlite3_subproject = subproject('sqlite3')
@ -256,28 +268,28 @@ if not sqlite3.found()
sqlite3 = declare_dependency(link_with: libsqlite3) sqlite3 = declare_dependency(link_with: libsqlite3)
endif endif
yaml = dependency('yaml-cpp', version: '>=0.6.2', required: false) yaml = dependency('yaml-cpp', version: '>=0.8.0', required: true)
if not yaml.found() if not yaml.found()
yaml_subproject = cmake.subproject('yaml-cpp', options: yaml_opts) yaml_subproject = cmake.subproject('yaml-cpp', options: yaml_opts)
yaml = yaml_subproject.dependency('yaml-cpp') yaml = yaml_subproject.dependency('yaml-cpp')
endif endif
snd = dependency('sndfile', version: '>=1.2.0', required: false) snd = dependency('sndfile', version: '>=1.2.0', required: true)
if not snd.found() if not snd.found()
snd_subproject = cmake.subproject('libsndfile', options: snd_opts) snd_subproject = cmake.subproject('libsndfile', options: snd_opts)
snd = snd_subproject.dependency('sndfile') snd = snd_subproject.dependency('sndfile')
endif endif
spdlog = dependency('spdlog', version: '>=1.12.0', required: false) spdlog = dependency('spdlog', version: '>=1.12.0', required: true)
if not spdlog.found() if not spdlog.found()
spdlog_subproject = cmake.subproject('spdlog', options: spdlog_opts) spdlog_subproject = cmake.subproject('spdlog', options: spdlog_opts)
spdlog = spdlog_subproject.dependency('spdlog') spdlog = spdlog_subproject.dependency('spdlog')
endif endif
aubio = dependency('aubio', version: '>=0.4.9', required: false) aubio = dependency('aubio', version: '>=0.4.9', required: true)
if not aubio.found() if not aubio.found()
aubio_subproject = subproject('aubio') aubio_subproject = subproject('aubio')