gtkmm = dependency('gtkmm-4.0', required: true) glibmm = dependency('glibmm-2.68', required: true) giomm = dependency('giomm-2.68', required: true) libsystemd = dependency('libsystemd', required: true) shumate = dependency('shumate-1.0', required: true) jsondep = dependency('nlohmann_json', required: true) threads = dependency('threads', required: true) sources = [ 'src/main.cpp', 'src/Application.cpp', 'src/MainWindow.cpp', 'src/ipc/UIServer.cpp', 'src/util/ProxyDetect.cpp', 'src/util/GeoResolver.cpp', 'src/util/AppResolver.cpp', 'src/dialogs/AlertDialog.cpp', 'src/dialogs/LanguageDialog.cpp', 'src/pages/ConnectionsPage.cpp', 'src/pages/AppsPage.cpp', 'src/pages/NetworkPage.cpp', 'src/pages/RulesPage.cpp', 'src/pages/StatsPage.cpp', 'src/pages/AboutPage.cpp', 'src/pages/SettingsPage.cpp', 'src/TrayIcon.cpp', ] inc = include_directories('src') deps = [ gtkmm, glibmm, giomm, libsystemd, shumate, jsondep, threads, ] executable('bastionguard-sc-ui', sources, include_directories : [inc, common_include_dir, root_include_dir], dependencies : deps, install : true, install_dir : get_option('bindir'), ) install_data( 'data/bastionguard-sc.desktop', install_dir : join_paths(get_option('datadir'), 'applications'), ) install_data( 'data/bastionguard-sc-autostart.desktop', install_dir : join_paths(get_option('sysconfdir'), 'xdg', 'autostart'), ) install_data( 'data/BSC.css', 'data/BSC-dark.css', 'data/icon-close.png', 'data/icon-minimize.png', 'data/logo-sidebar.png', 'data/logo.svg', install_dir : join_paths(get_option('datadir'), 'bastionguard-sc', 'data'), ) install_data( 'data/icons/connections.svg', 'data/icons/apps.svg', 'data/icons/network.svg', 'data/icons/rules.svg', 'data/icons/stats.svg', 'data/icons/about.svg', install_dir : join_paths(get_option('datadir'), 'bastionguard-sc', 'data/icons'), ) install_data( 'data/icons/bastionguard-sc.svg', install_dir : join_paths(get_option('datadir'), 'icons', 'hicolor', 'scalable', 'apps'), ) meson.add_install_script( 'sh', '-c', 'gtk-update-icon-cache -qtf "$MESON_INSTALL_DESTDIR_PREFIX/' + get_option('datadir') + '/icons/hicolor" || true' )