From 46121094a15e55b6ada755c5dbb42541ca935622 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:18:06 +0100 Subject: [PATCH 01/11] fix PCHs on VS2019 * separate PCH for C and C++ * acconf.h now included in PCHs on windows, too * meson now auto-generates companion source files for PCH headers --- libaegisub/include/lagi_pre.h | 2 -- libaegisub/include/lagi_pre_c.h | 3 +++ libaegisub/meson.build | 5 ++-- src/include/agi_pre.cpp | 6 ----- src/include/agi_pre.h | 2 -- src/include/agi_pre_c.h | 46 +++++++++++++++++++++++++++++++++ src/meson.build | 5 ++-- 7 files changed, 53 insertions(+), 16 deletions(-) create mode 100644 libaegisub/include/lagi_pre_c.h delete mode 100644 src/include/agi_pre.cpp create mode 100644 src/include/agi_pre_c.h diff --git a/libaegisub/include/lagi_pre.h b/libaegisub/include/lagi_pre.h index 50ce877e2..7dcf1cb2e 100644 --- a/libaegisub/include/lagi_pre.h +++ b/libaegisub/include/lagi_pre.h @@ -1,7 +1,5 @@ #ifdef __cplusplus -#ifndef _WIN32 #include "../acconf.h" -#endif #define WIN32_LEAN_AND_MEAN diff --git a/libaegisub/include/lagi_pre_c.h b/libaegisub/include/lagi_pre_c.h new file mode 100644 index 000000000..622cf2215 --- /dev/null +++ b/libaegisub/include/lagi_pre_c.h @@ -0,0 +1,3 @@ +#include "../acconf.h" + +#define WIN32_LEAN_AND_MEAN \ No newline at end of file diff --git a/libaegisub/meson.build b/libaegisub/meson.build index be19b4860..bb9842bfa 100644 --- a/libaegisub/meson.build +++ b/libaegisub/meson.build @@ -79,13 +79,12 @@ else endif libaegisub_cpp_pch = ['include/lagi_pre.h'] -if cxx.get_id() == 'msvc' - libaegisub_cpp_pch += 'include/lagi_pre.cpp' -endif +libaegisub_c_pch = ['include/lagi_pre_c.h'] libaegisub_inc = include_directories('include') libaegisub = static_library('aegisub', libaegisub_src, acconf, include_directories: [libaegisub_inc, deps_inc], cpp_pch: libaegisub_cpp_pch, + c_pch: libaegisub_c_pch, dependencies: deps) diff --git a/src/include/agi_pre.cpp b/src/include/agi_pre.cpp deleted file mode 100644 index d4d26d28c..000000000 --- a/src/include/agi_pre.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// A dummy file for compiling the precompiled header with VC++ -#if !defined(_MSC_VER) -#error "This file is only for use with MSVC." -#endif - -#include "agi_pre.h" diff --git a/src/include/agi_pre.h b/src/include/agi_pre.h index c40b0b862..e82216b88 100644 --- a/src/include/agi_pre.h +++ b/src/include/agi_pre.h @@ -48,9 +48,7 @@ #define _CRT_SECURE_NO_WARNINGS #endif -#ifndef _WIN32 #include "../../acconf.h" -#endif #define WIN32_LEAN_AND_MEAN diff --git a/src/include/agi_pre_c.h b/src/include/agi_pre_c.h new file mode 100644 index 000000000..c4d6924f4 --- /dev/null +++ b/src/include/agi_pre_c.h @@ -0,0 +1,46 @@ +// Copyright (c) 2006, Rodrigo Braz Monteiro +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Aegisub Project http://www.aegisub.org/ + +#include "../../acconf.h" + +#define WIN32_LEAN_AND_MEAN + +#ifdef _WIN32 +#include +#include +#else +#include +#endif + +#ifdef HAVE_OPENGL_GL_H +#include +#else +#include +#endif + diff --git a/src/meson.build b/src/meson.build index bf6a564f1..34d5da291 100644 --- a/src/meson.build +++ b/src/meson.build @@ -198,13 +198,12 @@ foreach opt: opt_src endforeach aegisub_cpp_pch = ['include/agi_pre.h'] -if cxx.get_id() == 'msvc' - aegisub_cpp_pch += 'include/agi_pre.cpp' -endif +aegisub_c_pch = ['include/agi_pre_c.h'] aegisub = executable('aegisub', aegisub_src, version_h, acconf, link_with: [libresrc, libluabins, libaegisub], include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc], cpp_pch: aegisub_cpp_pch, + c_pch: aegisub_c_pch, install: true, dependencies: deps) From 1237989bd2bbf940f50821115b28505a768b8749 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:23:40 +0100 Subject: [PATCH 02/11] meson: don't build fontconfig file lister on windows --- meson.build | 2 ++ src/meson.build | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 5025f6e3d..5175005be 100644 --- a/meson.build +++ b/meson.build @@ -33,12 +33,14 @@ conf.set('WITH_UPDATE_CHECKER', get_option('enable_update_checker')) deps = [] deps_inc = [] +conf.set('WITH_FONTCONFIG', '0') if host_machine.system() == 'darwin' add_languages('objc', 'objcpp') add_project_arguments('-DGL_SILENCE_DEPRECATION', language: 'cpp') # meson does not currently support objcpp_std add_project_arguments('-std=c++11', language: 'objcpp') elif host_machine.system() != 'windows' + conf.set('WITH_FONTCONFIG', '1') deps += dependency('fontconfig') endif diff --git a/src/meson.build b/src/meson.build index 34d5da291..e01353ae4 100644 --- a/src/meson.build +++ b/src/meson.build @@ -171,7 +171,7 @@ if host_machine.system() == 'darwin' 'osx/retina_helper.mm', 'osx/scintilla_ime.mm', ] -else +elif conf.get('WITH_FONTCONFIG') == '1' aegisub_src += 'font_file_lister_fontconfig.cpp' endif From b15baa9611683f4c3b779ab96045c8e01f89a662 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:28:12 +0100 Subject: [PATCH 03/11] meson: update dependencies switch back to official harfbuzz upstream now that meson has landed --- subprojects/harfbuzz.wrap | 5 ++--- subprojects/libass.wrap | 2 +- subprojects/libpng.wrap | 14 +++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index 20cafdae6..3d320e894 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -1,5 +1,4 @@ [wrap-git] directory = harfbuzz -# Change this URL once upstreamed! -url = https://github.com/tp-m/harfbuzz.git -revision = meson-rebased +url = https://github.com/harfbuzz/harfbuzz +revision = master diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 3e64a4ab2..3e8e691d0 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -1,4 +1,4 @@ [wrap-git] directory = libass url = https://github.com/TypesettingTools/libass.git -revision = meson-pr +revision = meson-no-rasterizer-approximation diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap index 30774eb72..b7af9091c 100644 --- a/subprojects/libpng.wrap +++ b/subprojects/libpng.wrap @@ -1,10 +1,10 @@ [wrap-file] -directory = libpng-1.6.35 +directory = libpng-1.6.37 -source_url = https://github.com/glennrp/libpng/archive/v1.6.35.tar.gz -source_filename = libpng-1.6.35.tar.gz -source_hash = 6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210 +source_url = https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz +source_filename = libpng-1.6.37.tar.gz +source_hash = ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307 -patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.35/5/get_zip -patch_filename = libpng-1.6.35-5-wrap.zip -patch_hash = da42b18e8d75a88615bdbc1c7bbf1f739ae19f63a8e70d96c90bc448326ae6b7 +patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.37/1/get_zip +patch_filename = libpng-1.6.37-1-wrap.zip +patch_hash = 9a863ae8a5657315a484c94c51f9f636b1fb9f49a15196cc896b72e5f21d78f0 From 1631ce855a49e65894cc1237fe0174b982c91ced Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:29:31 +0100 Subject: [PATCH 04/11] meson: define BOOST_USE_WINDOWS_H on Windows fixes symbol redefinition errors in VS 2019 --- meson.build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meson.build b/meson.build index 5175005be..db004ef2a 100644 --- a/meson.build +++ b/meson.build @@ -58,9 +58,14 @@ deps += iconv_dep deps += dependency('libass', version: '>=0.9.7', fallback: ['libass', 'libass_dep']) + deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', 'system', 'thread']) +if host_machine.system() == 'windows' + conf.set('BOOST_USE_WINDOWS_H', '1') +endif + deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) wx_dep = dependency('wxWidgets', version: '>=3.0.0', From bf8542162935d218b447257a1198a65f49879e7f Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 27 Oct 2019 02:30:01 +0100 Subject: [PATCH 05/11] meson: build libiconv as static library --- subprojects/iconv/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/iconv/meson.build b/subprojects/iconv/meson.build index 75261a585..eee208a42 100644 --- a/subprojects/iconv/meson.build +++ b/subprojects/iconv/meson.build @@ -14,6 +14,6 @@ iconv_incs = include_directories( 'libiconv' ) -libiconv = library('iconv', iconv_src, include_directories: iconv_incs) +libiconv = static_library('iconv', iconv_src, include_directories: iconv_incs) libiconv_dep = declare_dependency(link_with: libiconv, include_directories: iconv_incs) From f5621bc6a681ebd2fa7997374012b5add3931cfc Mon Sep 17 00:00:00 2001 From: line0 Date: Tue, 31 Mar 2020 21:19:15 +0200 Subject: [PATCH 06/11] meson: make boost honor the global default_library option --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index db004ef2a..5307f06a1 100644 --- a/meson.build +++ b/meson.build @@ -61,7 +61,8 @@ deps += dependency('libass', version: '>=0.9.7', deps += dependency('boost', version: '>=1.50.0', modules: ['chrono', 'filesystem', 'locale', 'regex', - 'system', 'thread']) + 'system', 'thread'], + static: get_option('default_library') == 'static') if host_machine.system() == 'windows' conf.set('BOOST_USE_WINDOWS_H', '1') endif From 5f06eb33764f4e91a2fbaf19c85493883017f1ea Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 00:56:21 +0200 Subject: [PATCH 07/11] meson: generate git_version header in build root rather than within the source tree fixes an issue where the windows version of the git version update script generated the header in a place where it couldn't be found by the include in version.cpp --- meson.build | 2 +- tools/version.ps1 | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 5307f06a1..20fc56fe0 100644 --- a/meson.build +++ b/meson.build @@ -11,7 +11,7 @@ else endif version_inc = include_directories('.') version_h = custom_target('git_version.h', - command: [version_sh, meson.source_root()], + command: [version_sh, meson.current_build_dir()], build_by_default: true, build_always_stale: true, # has internal check whether target file will be refreshed output: ['git_version.h', 'git_version.xml']) diff --git a/tools/version.ps1 b/tools/version.ps1 index 03d02dbef..0d61c7176 100644 --- a/tools/version.ps1 +++ b/tools/version.ps1 @@ -1,20 +1,32 @@ #!/usr/bin/env powershell + +param ( + [Parameter(Position = 0, Mandatory = $false)] + [string]$BuildRoot = $null +) + $lastSvnRevision = 6962 $lastSvnHash = '16cd907fe7482cb54a7374cd28b8501f138116be' $defineNumberMatch = [regex] '^#define\s+(\w+)\s+(\d+)$' $defineStringMatch = [regex] "^#define\s+(\w+)\s+[`"']?(.+?)[`"']?$" $semVerMatch = [regex] 'v?(\d+)\.(\d+).(\d+)(?:-(\w+))?' - $repositoryRootPath = Join-Path $PSScriptRoot .. | Resolve-Path if (!(git -C $repositoryRootPath rev-parse --is-inside-work-tree 2>$null)) { throw "$repositoryRootPath is not a git repository" } -$gitVersionHeaderPath = Join-Path $repositoryRootPath 'src' | Join-Path -ChildPath 'include' | Join-Path -ChildPath 'aegisub' ` - | Join-Path -ChildPath 'git_version.h' -$gitVersionXmlPath = Join-Path $repositoryRootPath 'packages' | Join-Path -ChildPath 'win_installer' ` - | Join-Path -ChildPath 'git_version.xml' +if ($BuildRoot -eq $null -or $BuildRoot.Trim() -eq "") { + $BuildRoot = $repositoryRootPath +} + +# support legacy in-tree builds +if ([System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $BuildRoot)) -eq + [System.IO.Path]::GetFullPath([System.IO.Path]::Combine((pwd).Path, $repositoryRootPath))) { + $BuildRoot = Join-Path $repositoryRootPath 'build' + } +$gitVersionHeaderPath = Join-Path $BuildRoot 'git_version.h' +$gitVersionXmlPath = Join-Path $repositoryRootPath 'build' | Join-Path -ChildPath 'git_version.xml' $version = @{} if (Test-Path $gitVersionHeaderPath) { From 34fa9af482598225bddf799613b4aa8d56b20d1c Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 01:14:53 +0200 Subject: [PATCH 08/11] utils: work around missing C++11 char16_t overload in wx string conversion --- src/utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.cpp b/src/utils.cpp index 2416aa7a2..69c53bd1c 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -275,7 +275,7 @@ wxString LocalizedLanguageName(wxString const& lang) { icu::UnicodeString ustr; iculoc.getDisplayName(iculoc, ustr); #ifdef _MSC_VER - return wxString(ustr.getBuffer()); + return wxString((const wchar_t*)ustr.getBuffer()); #else std::string utf8; ustr.toUTF8String(utf8); From c4b8b351f1b3f5b691649021f03888a0145a9fec Mon Sep 17 00:00:00 2001 From: line0 Date: Sat, 11 Apr 2020 01:27:16 +0200 Subject: [PATCH 09/11] meson: add support for building wxWidgets as a subproject (WIP) monolithic build only and disabled precompiled headers due to limited cmake support in meson still missing linker dependencies refs to Windows SDK libs --- meson.build | 27 +++++++++++++++++++++++---- subprojects/wxWidgets.wrap | 5 +++++ 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 subprojects/wxWidgets.wrap diff --git a/meson.build b/meson.build index 20fc56fe0..c85f076bc 100644 --- a/meson.build +++ b/meson.build @@ -1,9 +1,11 @@ project('Aegisub', ['c', 'cpp'], license: 'BSD-3-Clause', - meson_version: '>=0.49.0', + meson_version: '>=0.51.0', default_options: ['c_std=c11', 'cpp_std=c++11', 'b_lto=true'], version: '3.2.2') +cmake = import('cmake') + if host_machine.system() == 'windows' version_sh = find_program('tools/version.ps1') else @@ -72,16 +74,33 @@ deps += dependency('zlib', fallback: ['zlib', 'zlib_dep']) wx_dep = dependency('wxWidgets', version: '>=3.0.0', required: cxx.get_id() != 'msvc', modules: ['std', 'stc', 'gl']) -if not wx_dep.found() # this will only be hit with msvc + +if wx_dep.found() + deps += wx_dep +else # this will only be hit with msvc if get_option('wx_path') != '' deps_inc += include_directories(get_option('wx_path') / 'include' / 'msvc', get_option('wx_path') / 'include') add_project_arguments('-DUNICODE', '-D_UNICODE', language: 'cpp') add_project_arguments('-DwxMSVC_VERSION_AUTO', '-DWXUSINGDLL', language: 'cpp') else - error('wxWidgets not found and no wx_path defined.') + buildShared = 'ON' + if get_option('default_library') == 'static' + buildShared = 'OFF' + endif + + wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', + '-DwxBUILD_PRECOMP=OFF', # breaks project generation w/ meson + '-DwxBUILD_SHARED=@0@'.format(buildShared), + '-DwxBUILD_MONOLITHIC=ON']) + deps += [ + wx.dependency('mono'), + wx.dependency('wxzlib'), + wx.dependency('wxpng'), + wx.dependency('wxexpat'), + wx.dependency('wxscintilla') + ] endif endif -deps += wx_dep icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc') diff --git a/subprojects/wxWidgets.wrap b/subprojects/wxWidgets.wrap new file mode 100644 index 000000000..a77194055 --- /dev/null +++ b/subprojects/wxWidgets.wrap @@ -0,0 +1,5 @@ +[wrap-git] +directory = wxWidgets +url = https://github.com/wxWidgets/wxWidgets.git +revision = master +clone-recursive = true \ No newline at end of file From 1dcfbbd194218c1934569aed33cf6d84a7201a11 Mon Sep 17 00:00:00 2001 From: line0 Date: Sun, 12 Apr 2020 21:51:28 +0200 Subject: [PATCH 10/11] meson: add missing link dependencies on windows --- meson.build | 23 +++++++++++++++++++---- src/meson.build | 14 ++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index c85f076bc..5ba12f0f0 100644 --- a/meson.build +++ b/meson.build @@ -89,9 +89,9 @@ else # this will only be hit with msvc endif wx = cmake.subproject('wxWidgets', cmake_options: ['-DwxBUILD_INSTALL=OFF', - '-DwxBUILD_PRECOMP=OFF', # breaks project generation w/ meson + '-DwxBUILD_PRECOMP=OFF', # otherwise breaks project generation w/ meson '-DwxBUILD_SHARED=@0@'.format(buildShared), - '-DwxBUILD_MONOLITHIC=ON']) + '-DwxBUILD_MONOLITHIC=ON']) # otherwise breaks project generation w/ meson deps += [ wx.dependency('mono'), wx.dependency('wxzlib'), @@ -99,6 +99,19 @@ else # this will only be hit with msvc wx.dependency('wxexpat'), wx.dependency('wxscintilla') ] + + if host_machine.system() == 'windows' + if cc.has_header('rpc.h') + deps += cc.find_library('rpcrt4', required: true) + else + error('Missing Windows SDK RPC Library (rpc.h / rpcrt4.lib)') + endif + if cc.has_header('commctrl.h') + deps += cc.find_library('comctl32', required: true) + else + error('Missing Windows SDK Common Controls Library (commctrl.h / comctl32.lib)') + endif + endif endif endif @@ -155,8 +168,10 @@ if host_machine.system() == 'windows' and not get_option('directsound').disabled if not have_dsound_h and get_option('directsound').enabled() error('DirectSound enabled but dsound.h not found') endif - if dsound_dep.found() and winmm_dep.found() and ole32_dep.found() and have_dsound_h - deps += [dsound_dep, winmm_dep, ole32_dep] + + dxguid_dep = cc.find_library('dxguid', required: true) + if dsound_dep.found() and winmm_dep.found() and ole32_dep.found() and dxguid_dep.found() and have_dsound_h + deps += [dsound_dep, winmm_dep, ole32_dep, dxguid_dep] conf.set('WITH_DIRECTSOUND', '1') dep_avail += 'DirectSound' endif diff --git a/src/meson.build b/src/meson.build index e01353ae4..bf932654e 100644 --- a/src/meson.build +++ b/src/meson.build @@ -171,6 +171,20 @@ if host_machine.system() == 'darwin' 'osx/retina_helper.mm', 'osx/scintilla_ime.mm', ] +elif host_machine.system() == 'windows' + aegisub_src += [ + 'font_file_lister_gdi.cpp' + ] + if cc.has_header('wingdi.h') + deps += cc.find_library('gdi32', required: true) + else + error('Missing Windows SDK GDI Library (wingdi.h / gdi32.lib)') + endif + if cc.has_header('usp10.h') + deps += cc.find_library('usp10', required: true) + else + error('Missing Windows SDK Uniscribe Library (usp10.h / usp10.lib)') + endif elif conf.get('WITH_FONTCONFIG') == '1' aegisub_src += 'font_file_lister_fontconfig.cpp' endif From 05c345ee6bae252eba02e0de51b682c67e4c8021 Mon Sep 17 00:00:00 2001 From: line0 Date: Thu, 21 May 2020 09:07:58 +0200 Subject: [PATCH 11/11] meson: flag aegisub as a GUI app --- src/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index bf932654e..7e5dc7788 100644 --- a/src/meson.build +++ b/src/meson.build @@ -220,4 +220,5 @@ aegisub = executable('aegisub', aegisub_src, version_h, acconf, cpp_pch: aegisub_cpp_pch, c_pch: aegisub_c_pch, install: true, - dependencies: deps) + dependencies: deps, + gui_app: true)