aboutsummaryrefslogtreecommitdiff
path: root/meson.build
blob: a2446a13e4bb8a5459b7b8f45aad50a5759becfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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')

if get_option('native_arch') == true
    add_project_arguments('-march=native', language: ['c', 'cpp'])
endif

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)

if get_option('install_symlink') == true
    install_symlink('qm', install_dir : join_paths(prefix, 'bin'), pointing_to: join_paths(prefix, 'bin', meson.project_name()))
endif

if get_option('install_emoji') == true
    meson.add_install_script('meson_post_install.sh')
endif