aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2025-03-04 23:28:19 +0100
committerdec05eba <dec05eba@protonmail.com>2025-03-04 23:28:19 +0100
commitcf9955dbc35e8e3bb9ac8febbec76cfecd7e739b (patch)
treeb2e0b2237c63f4aea27d2e23d61fbbbcd76d1b47 /meson.build
parent3003cf04c015a3a847a5d598e3a3b0521ff6bdf9 (diff)
Convert to meson project
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build128
1 files changed, 128 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..dd192bb
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,128 @@
+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') \ No newline at end of file