project('nomines', 'cpp', version : '1.0.0', default_options : ['warning_level=3', 'cpp_std=c++20']) gnome = import('gnome') res = gnome.compile_resources( 'resources', 'resources/gresource.xml', source_dir: 'resources', c_name: 'gresources' ) # Dependencies deps = [ dependency('gtkmm-4.0'), dependency('sigc++-3.0') ] # Source files src = [ 'src/main.cpp', 'src/window.cpp', 'src/window.hpp', 'src/minefield.hpp', 'src/minefield.cpp', 'src/board_widget.hpp', 'src/board_widget.cpp', 'src/leaderboard.hpp', 'src/leaderboard.cpp', res ] # Executable executable('nomines', src, dependencies : deps, install : true ) # Install icon install_data( 'resources/nomines.svg', install_dir: join_paths(get_option('datadir'), 'icons/hicolor/scalable/apps') ) # Install desktop file install_data( 'resources/io.github.bemagri.nomines.desktop', install_dir: join_paths(get_option('datadir'), 'applications') ) # Install AppStream metadata install_data( 'resources/io.github.bemagri.nomines.metainfo.xml', install_dir: join_paths(get_option('datadir'), 'metainfo') ) # Release validation (best-effort, only when the tools are installed) desktop_file_validate = find_program('desktop-file-validate', required: false) if desktop_file_validate.found() test('validate-desktop', desktop_file_validate, args: ['resources/io.github.bemagri.nomines.desktop']) endif appstreamcli = find_program('appstreamcli', required: false) if appstreamcli.found() test('validate-metainfo', appstreamcli, args: ['validate', '--no-net', 'resources/io.github.bemagri.nomines.metainfo.xml']) endif