project( 'pixtool', 'cpp', version: '0.0.0', default_options: [ 'cpp_std=c++17', 'warning_level=3' ] ) data_dir = get_option('prefix') / get_option('datadir') / 'pixtool' conf = configuration_data() conf.set('version', meson.project_version()) conf.set('datadir', data_dir) configure_file( input: 'src/conf.in.hpp', output: 'conf.hpp', configuration: conf ) qt6 = import('qt6') qt6_dep = dependency('qt6', modules: ['Core', 'Widgets']) qt_src = qt6.compile_moc( headers: [ 'src/gui/Window.hpp' ] ) translations = qt6.compile_translations( ts_files: [ 'i18n/pix_en.ts', 'i18n/pix_fr.ts' ], install: true, install_dir: data_dir / 'i18n' ) pixtool = static_library( 'pixtool-core', sources: [ 'src/Presenter.cpp', # model 'src/model/PixTool.cpp', 'src/model/Command.cpp', 'src/model/Shortcut.cpp', 'src/model/CommandRunner.cpp', 'src/model/Observer.cpp', 'src/model/Observable.cpp', # gui 'src/gui/Window.cpp', ] + qt_src + translations, dependencies: [ qt6_dep, dependency('spdlog') ] ) pixtool_dep = declare_dependency( link_with: [pixtool], include_directories: ['src'] ) executable( 'pixtool', sources: [ 'src/main.cpp' ], dependencies: [ pixtool_dep, qt6_dep ], install: true ) executable( 'pixtool-tests', sources: [ 'tests/main.cpp', 'tests/CommandRunner.cpp', ], dependencies: [ dependency('catch2'), pixtool_dep ], install: true )