2021-12-30 01:48:17 +01:00
|
|
|
project(
|
2023-07-28 02:30:20 +02:00
|
|
|
'F.E.I.S',
|
|
|
|
'cpp',
|
|
|
|
'c',
|
|
|
|
meson_version : '>=0.62.0',
|
|
|
|
version : '2.0.0',
|
|
|
|
default_options : ['cpp_std=c++20']
|
2021-12-30 01:48:17 +01:00
|
|
|
)
|
|
|
|
|
2022-04-10 13:08:41 +02:00
|
|
|
deps = []
|
|
|
|
|
|
|
|
sfml_system_dep = dependency('sfml-system', version : '>=2.5.1')
|
|
|
|
deps += [sfml_system_dep]
|
|
|
|
sfml_window_dep = dependency('sfml-window', version : '>=2.5.1')
|
|
|
|
deps += [sfml_window_dep]
|
|
|
|
sfml_graphics_dep = dependency('sfml-graphics', version : '>=2.5.1')
|
|
|
|
deps += [sfml_graphics_dep]
|
|
|
|
sfml_audio_dep = dependency('sfml-audio', version : '>=2.5.1')
|
|
|
|
deps += [sfml_audio_dep]
|
|
|
|
gl_dep = dependency('gl')
|
|
|
|
deps += [gl_dep]
|
|
|
|
openal_dep = dependency('openal')
|
|
|
|
deps += [openal_dep]
|
2023-08-04 17:14:32 +02:00
|
|
|
mpdecpp_dep = dependency('mpdec++', fallback: ['mpdecimal', 'mpdecpp_dep'], static: true)
|
2022-04-10 13:08:41 +02:00
|
|
|
deps += [mpdecpp_dep]
|
|
|
|
gmp_dep = dependency('gmp')
|
|
|
|
deps += [gmp_dep]
|
|
|
|
nowide_dep = dependency('nowide')
|
|
|
|
deps += [nowide_dep]
|
2022-05-11 00:09:02 +02:00
|
|
|
deps += dependency('threads')
|
2022-11-18 01:48:53 +01:00
|
|
|
tomlplusplus_dep = dependency('tomlplusplus')
|
|
|
|
deps += [tomlplusplus_dep]
|
2023-04-19 08:29:02 +02:00
|
|
|
aubio_dep = dependency('aubio')
|
|
|
|
deps += [aubio_dep]
|
|
|
|
fftw3_dep = dependency('fftw3')
|
|
|
|
deps += [fftw3_dep]
|
2023-06-30 01:47:18 +02:00
|
|
|
eigen_dep = dependency('eigen3')
|
|
|
|
deps += [eigen_dep]
|
2023-10-03 23:16:38 +02:00
|
|
|
platform_folders_dep = dependency('platform_folders', static: true)
|
|
|
|
deps += [platform_folders_dep]
|
2021-12-30 01:48:17 +01:00
|
|
|
|
2022-01-05 23:18:13 +01:00
|
|
|
# I chose to put the .cpp files of the libs I vendor directly in include/
|
|
|
|
# I store the files in a (lib name -> files) dict so that tests can
|
|
|
|
# select which libs they want to compile with
|
|
|
|
include_sources = {}
|
|
|
|
subdir('include') # Defines `inc` and adds stuff in `include_sources`
|
2021-12-30 01:48:17 +01:00
|
|
|
|
2022-04-10 13:08:41 +02:00
|
|
|
sources = []
|
2022-11-15 22:04:29 +01:00
|
|
|
subdir('src') # Adds stuff in the `sources` list and defines configuration_inc
|
2021-12-30 01:48:17 +01:00
|
|
|
|
2022-01-05 23:18:13 +01:00
|
|
|
subdir('tests')
|
|
|
|
|
|
|
|
foreach lib, lib_sources : include_sources
|
|
|
|
sources += lib_sources
|
|
|
|
endforeach
|
|
|
|
|
2023-07-29 00:47:12 +02:00
|
|
|
if target_machine.system() == 'windows'
|
|
|
|
windows = import('windows')
|
2023-07-29 00:50:21 +02:00
|
|
|
sources += windows.compile_resources(
|
|
|
|
'src/feis.rc',
|
2023-07-29 01:15:20 +02:00
|
|
|
depend_files: 'images/feis icon.ico'
|
2023-07-29 00:50:21 +02:00
|
|
|
)
|
2023-07-29 00:47:12 +02:00
|
|
|
endif
|
|
|
|
|
2021-12-30 01:48:17 +01:00
|
|
|
executable(
|
|
|
|
'FEIS',
|
|
|
|
sources: sources,
|
|
|
|
dependencies: deps,
|
2022-11-15 22:04:29 +01:00
|
|
|
include_directories: [
|
|
|
|
inc,
|
2023-06-30 01:47:18 +02:00
|
|
|
configuration_inc,
|
|
|
|
],
|
2023-07-28 15:01:59 +02:00
|
|
|
win_subsystem: 'windows' # mark as GUI app when compiling for windows, hides the console amongst other things
|
2021-12-30 01:48:17 +01:00
|
|
|
)
|