project('quickmedia', ['c', 'cpp'], version : '1.0.0', default_options : ['warning_level=2', 'cpp_std=c++17'], subproject_dir : 'depends') if get_option('buildtype') == 'debug' add_project_arguments('-g3', language : ['c', 'cpp']) elif get_option('buildtype') == 'release' add_project_arguments('-DNDEBUG', language : ['c', 'cpp']) endif src = [ 'external/hash-library/sha256.cpp', 'generated/Tlds.cpp', 'generated/Emoji.cpp', 'src/plugins/utils/aes.c', 'src/plugins/Fourchan.cpp', 'src/plugins/Mangadex.cpp', 'src/plugins/ImageBoard.cpp', 'src/plugins/MangaCombined.cpp', 'src/plugins/Manga.cpp', 'src/plugins/Lbry.cpp', 'src/plugins/NyaaSi.cpp', 'src/plugins/HotExamples.cpp', 'src/plugins/FileManager.cpp', 'src/plugins/MediaGeneric.cpp', 'src/plugins/Matrix.cpp', 'src/plugins/Plugin.cpp', 'src/plugins/MangaGeneric.cpp', 'src/plugins/Pipe.cpp', 'src/plugins/Manganelo.cpp', 'src/plugins/LocalManga.cpp', 'src/plugins/Page.cpp', 'src/plugins/Peertube.cpp', 'src/plugins/LocalAnime.cpp', 'src/plugins/AniList.cpp', 'src/plugins/DramaCool.cpp', 'src/plugins/utils/UniqueProcess.cpp', 'src/plugins/utils/WatchProgress.cpp', 'src/plugins/utils/EpisodeNameParser.cpp', 'src/plugins/Info.cpp', 'src/plugins/Youtube.cpp', 'src/plugins/Saucenao.cpp', 'src/plugins/Soundcloud.cpp', 'src/Theme.cpp', 'src/Storage.cpp', 'src/Text.cpp', 'src/Config.cpp', 'src/DownloadUtils.cpp', 'src/Json.cpp', 'src/gui/Button.cpp', 'src/SearchBar.cpp', 'src/RoundedRectangle.cpp', 'src/Entry.cpp', 'src/Notification.cpp', 'src/AsyncImageLoader.cpp', 'src/ImageViewer.cpp', 'src/Body.cpp', 'src/Program.cpp', 'src/main.cpp', 'src/ImageUtils.cpp', 'src/NetUtils.cpp', 'src/BodyItem.cpp', 'src/Downloader.cpp', 'src/ResourceLoader.cpp', 'src/VideoPlayer.cpp', 'src/Tabs.cpp', 'src/FileAnalyzer.cpp', 'src/QuickMedia.cpp', 'src/M3U8.cpp', 'src/Utils.cpp', 'src/StringUtils.cpp', ] mglpp_proj = subproject('mglpp') mglpp_dep = mglpp_proj.get_variable('mglpp_dep') jsoncpp_proj = subproject('jsoncpp') jsoncpp_dep = jsoncpp_proj.get_variable('jsoncpp_dep') html_parser_proj = subproject('html-parser') html_parser_dep = html_parser_proj.get_variable('html_parser_dep') html_search_proj = subproject('html-search') html_search_dep = html_search_proj.get_variable('html_search_dep') prefix = get_option('prefix') datadir = get_option('datadir') qm_resources_path = join_paths(prefix, datadir, 'quickmedia') add_project_arguments('-march=native', language: ['c', 'cpp']) executable( meson.project_name(), src, install : true, dependencies : [ mglpp_dep, jsoncpp_dep, html_parser_dep, html_search_dep, dependency('threads'), ], ) executable( 'quickmedia-video-player', [ 'video_player/src/main.cpp' ], install : true, dependencies : [ jsoncpp_dep, dependency('mpv'), ], ) install_subdir('mpv', install_dir : qm_resources_path) install_subdir('images', install_dir : qm_resources_path) install_subdir('icons', install_dir : qm_resources_path) install_subdir('shaders', install_dir : qm_resources_path) install_subdir('themes', install_dir : qm_resources_path) install_subdir('launcher', install_dir : join_paths(prefix, datadir, 'applications')) install_data(files('boards.json'), install_dir : qm_resources_path) install_data(files('example-config.json'), install_dir : qm_resources_path) install_data(files('README.md'), install_dir : qm_resources_path) install_symlink('qm', install_dir : join_paths(prefix, 'bin'), pointing_to: join_paths(prefix, 'bin', meson.project_name())) meson.add_install_script('meson_post_install.sh')