Compare commits

...

779 Commits

Author SHA1 Message Date
odrling fa669a94e6
use older macos-12 runner
latest/14 fails and builds for arm64
also GA skipped 13 for macos-latest for some reason
2024-04-02 18:59:41 +02:00
odrling dd14bb326f
fix version.sh when building from a git worktree
In a git worktree .git is a regular file that contains a reference to
its git directory
2024-04-02 18:44:59 +02:00
odrling 463f886a58
add missing includes
my gentoo ebuild seems to die on these includes... unlike a manual build
2024-04-02 18:44:59 +02:00
odrling b2e6af62eb
copy all automation scripts to install dir 2024-04-02 18:44:59 +02:00
odrling 724df479c5
add automation scripts back 2024-04-02 18:44:59 +02:00
odrling fc5277492c
force git directory in version.sh 2024-04-02 18:44:59 +02:00
odrling 3e0d4bcdab
osx-fix-libs: log link path 2024-04-02 18:44:59 +02:00
odrling 1ea0faa59f
osx-fix-libs: fix relative symlinks with same name 2024-04-02 18:44:58 +02:00
odrling 89bae8640c
force dependency on libresrc 2024-04-02 18:44:58 +02:00
odrling 13ee9cc20b
don't delay audio on matroska files 2024-04-02 18:44:58 +02:00
odrling 39da678257
add option to disable tests 2024-04-02 18:44:58 +02:00
odrling 9ef7feab55
fix vfr nonzero start time test 2024-04-02 18:44:58 +02:00
odrling e69fd3e96f
[style] increase default font size 2024-04-02 18:44:58 +02:00
odrling ce97291a1b
[Karaoke] disable drag timing
disables "Left-click drag moves end marker"
2024-04-02 18:44:58 +02:00
odrling fc54f0a1a8
[style] change default style 2024-04-02 18:44:58 +02:00
odrling f0c20ea8e5
[Karaoke] Autocommit and autofocus 2024-04-02 18:44:57 +02:00
Vincent Wong 654dbcf2cf
Audio/timing: minor style, comment
A bit more clarification of code logic. Follow predominant if/else style
2024-04-02 18:44:57 +02:00
Vincent Wong 0761654486
Audio/Timing: implement tap-to-time
Tap-to-time provides the user the ability to tap to the lyrics/syllables
of the song in order to time lines or karaoke. It consists of these
extra UI interactions:

- **Indicator**: tap marker: a designated marker that can be moved to
  the current audio position; indicated in:
  - the audio display by a green arrow underneath a marker
  - the karaoke display by a green-colored syllable
- **Control**: tap marker: the tap marker can be changed by selecting
  syllables on audio display in karaoke mode, or clicking the markers on
  audio display in dialogue mode
- **Control**: ctrl-right-click audio display: starts playing the audio
  from that exact position until the end of the file
- **Option**: Timing/Tap To Time: enables the tap marker indicator and
  commands
- **Button**: time_opt_tap_to_time: toggles the Timing/Tap To Time option
- **Button**: time_tap_connect (hotkey I): a command that:
  - moves the tap marker's position to the current playing audio
    position
  - sets the next marker to be the tap marker
  - if the tap marker is already the last marker AND BOTH autocommit AND
    next-line-on-commit is ON, will move onto the next line
  - if moved on to the next line, also sets the start marker to the current
    audio position, so the two lines are connected, and moves to the
    next tap marker (essentially reinvoking time_tap_connect once)
- **Button**: time_tap_no_connect (hotkey O): similar to
  time_tap_connect, except it will not set the next line's start
  position even if moved to the next line

Expected workflow:
1) User loads song lyrics
2) User splits each line into syllables
3) User turns on tap-to-time, autocommit, and next-line-on-commit
4) User plays audio from beginning, tapping time_tap_connect to each
syllable, occasionally tapping time_tap_no_connect when a break between
lines is desired
5) If user messes up a line, they can set the tap marker to where they
want to restart from, and ctrl-right-click to start the audio a few
seconds before it
6) Syllables can be split/merged at will, and adjustments to timing can
be done using normal karaoke timing controls
2024-04-02 18:44:57 +02:00
Vincent Wong 166fabcfd2
AudioTimingControllerKaraoke: move timing correction above MoveMarker
Having the timing correction in MoveMarker is extremely surprising
behavior if any other part of the code uses MoveMarker expecting it to
work correctly as advertised
2024-04-02 18:44:57 +02:00
Vincent Wong 3f0ec2c102
audio_timing: add missing param comment for OnLeftClick
Missing the alt_click param in comment
2024-04-02 18:44:57 +02:00
odrling 010f538efa
normalize timecodes for every formats except matroska 2024-04-02 18:44:57 +02:00
odrling 8348c1e0f5
shift video instead of subtitles
This is probably wrong in some cases. This is probably what we want with
matroska files.
2024-04-02 18:44:57 +02:00
odrling 8c3d6c06ad
fix mks file parsing 2024-04-02 18:44:56 +02:00
odrling e824932423
fix sub timing in mkv files with video delay
Some matroska files have audio start at timestamp 0 and video later.
In this case mkvtoolnix seems to use the first block of the first
cluster to the audio track (I would assume this is only an
implementation detail and not really from the matroska specs. And also
could happen in other cases without the video being delayed, but that's
not the point). Aegisub used to read this first block and use its
timestamp as the starting point of the video track.

With this commit, Aegisub tries to read all the blocks until it can read
the first timestamp of the video track and use it for the subtitles'
timestamps. Audio tracks don't seem to be impacted by these changes.
2024-04-02 18:44:56 +02:00
Pierre Jeanjean 93398de478
Fix charset detection and conversion issues 2024-04-02 18:44:53 +02:00
arch1t3cht aa68c2e66b Merge branches 'misc' and 'bugfixes' into feature 2024-03-20 14:39:37 +01:00
Ryan Lucia 4b20bc7df0 ci: try to workaround github actions bug 2024-03-20 14:39:24 +01:00
moi15moi 7543060f1d Rework Windows font collector (arch1t3cht/Aegisub#107)
[src\meson.build] Add DirectWrite has dependency

[src\font_file_lister_gdi] Rework GDI FontCollector to use DirectWrite

This replaces all the logic of using the Windows registry to obtain the font path by using DirectWrite. The goal is simply to improve the quality of the code. This doesn't change any functionality

[src\meson.build] Remove Uniscribe has dependency

Uniscribe was only used for the FontCollector. Since we now use DirectWrite, we don't need it anymore.

[src\dialog_fonts_collector] Catch exceptions that FontCollector may raise

On Windows, the initialization of the FontCollector can raise an exception

[src\font_file_lister] Document the exception that GdiFontFileLister can throw

[src\font_file_lister_gdi] Correct possible memory leak when an error occur

Fix error caused by AddFontResource on Windows 10 or higher

[meson.build] Replace add_project_arguments with conf.set for HAVE_DWRITE_3

[src\dialog_fonts_collector] Update message error and optimisation

[src\font_file_lister_gdi] Correct documentation typo

[src\font_file_lister_gdi] Cosmetic nit - Initialize hfont in one line

[src\font_file_lister_gdi] Cosmetic nit - Remove if statements brace

[src\font_file_lister_gdi] Replace WCHAR param of normalizeFilePathCase to std::wstring

[src\font_file_lister_gdi] Replace WCHAR by std::wstring

[src\font_file_lister_gdi] Use IDWriteFontFace::GetSimulations to detect fake_italic/fake_bold

See this comment: https://github.com/arch1t3cht/Aegisub/pull/107#issuecomment-1975229652

[src\font_file_lister_gdi] If Win7/8 has Win 10 SDK on compile time, correctly verify if font has character(s)

With the Visual Studio 2019 toolchain on Windows 7, it installs the Windows 10 SDK by default. Because of this, ``HAVE_DWRITE_3`` is true, so the ``QueryInterface`` always fails. Now, if the ``QueryInterface`` fails, we try to verify if the font has characters with a Windows Vista SP2 compatible code.

[src\font_file_lister_gdi] Support facename that contains only whitespace AND truncated facename

Problem 1:
Previously, if a user wrote "\fn   ", it would return the font Arial, which is not what we want. This is because when we request EnumFontFamiliesEx with whitespace or an empty lfFaceName, it will enumerate all the installed fonts.

Solution 1:
To resolve this issue, let's implement a solution similar to libass to determine if the selected facename exists: 649a7c2e1f/libass/ass_directwrite.c (L737-L747)

Problem 2:
GDI truncates font names to 31 characters. See: https://github.com/libass/libass/issues/459
However, since I changed the method to determine if a facename exists, I ensured that we still support this "feature".

To test this, I used the font in: https://github.com/libass/libass/issues/710

[src\font_file_lister_gdi] Add a FIXME comment regarding the utilization of std::wstring over WCHAR

[src\font_file_lister_gdi] Add FIXME comment about charset
2024-03-20 14:38:45 +01:00
arch1t3cht 897ca32c26 Allow setting Encoding=-1 in style editor 2024-03-19 23:32:12 +01:00
arch1t3cht cd2e894634 Merge branches 'bestsource', 'vapoursynth' and 'bugfixes' into feature 2024-03-08 01:54:29 +01:00
arch1t3cht 4f8cb846cc bestsource: Bump to R1 2024-03-08 01:54:14 +01:00
arch1t3cht 86295a8d36 Install gettext on Windows CI
Apparently this is no longer installed by default.
2024-03-08 01:40:38 +01:00
arch1t3cht bf8bbb60d6 vapoursynth: Switch from bestaudiosource to BestSource
BestSource now had its first official release, so this is possible now.
2024-03-07 21:46:59 +01:00
arch1t3cht e2e3906d15 Merge branch 'vapoursynth' into feature 2024-02-27 20:40:47 +01:00
arch1t3cht deb0f19b1b vapoursynth: Ensure vscache directory is created
Match the other video providers for consistency.
2024-02-27 20:39:41 +01:00
petzku abff2365d3 vapoursynth: Recursively create directories 2024-02-27 20:36:21 +01:00
arch1t3cht dcca721543 Merge branches 'lua_api' and 'misc' into feature 2024-02-20 15:04:04 +01:00
arch1t3cht f52b699493 lua: Add function to get raw frame data
This can be useful when scripts want to read the entire frame
and pass it on somewhere else (say, write it to a file or use some
library function on it).
2024-02-20 15:02:59 +01:00
arch1t3cht 1515c77438 Fix widths of time columns for fonts with proportional figures
This still breaks when the 0 digit is narrower than some other
digit, but that's unlikely and the current behavior now matches
the original behavior when all times are < 10h.

Fixes arch1t3cht/Aegisub#111 .
2024-02-19 14:22:27 +01:00
arch1t3cht 63bbdc32d3 lua: Make frame:getPixel return three values
This is what users will want in the majority of cases, and switching
to this makes using this function much easier.

However, this does break backwards compatibility. Luckily to my
knowledge this function is not actually used in any existing published
script (all scripts using get_frame just use getPixelFormatted instead)
so the damage shouldn't be too large. But this is also why I'd rather
rip off the band-aid of breaking backwards compatibility now than later.
2024-02-18 02:34:18 +01:00
arch1t3cht c11f17b9e6 lua: Correct refcount handling in get_frame
When destroying a frame handle, the previous logic would copy the
shared_ptr in the userdata and then free it twice (once explicitly
and once at the end of the function), which is actually UB, even
if if worked fine so far. This commit now ensures that it's the
actual userdata's shared_ptr that's freed in the gc function.
2024-02-18 02:34:18 +01:00
arch1t3cht 48855787a1 lua: Fix FrameDestroy function name 2024-02-18 02:34:18 +01:00
arch1t3cht ba9f48a0e5 Merge branch 'misc' into feature 2024-02-08 21:26:04 +01:00
arch1t3cht eaf09b2850 Fix widths of time columns for times >10h
An unfortunate consequence of this is that the grid widths have to
be computed on every change to line timing, which will probably
have an impact on timing performance when autocommit is enabled.
It's probably not a huge impact but it's worth keeping an eye on.
2024-02-08 21:22:35 +01:00
arch1t3cht e67fe10c4b Merge branch 'misc' into feature 2024-02-08 20:43:59 +01:00
Oneric 8fcb7c61e8 Stop truncating parsed times to <10h
All current renderers and muxers have no issues with longer timestamps.
However, classic VSFilter keeping track of time with a 32-bit int,
leads to a more meaningful limit at 596h, so enforce that instead.

Since the stringification code for SRT and ASS (but not SMPTE) relied on
hours being single digit, replace them with a simple format string.

GUI inputs are still limited to <10h, but at least
pre-existing timestamps no longer get mangled.
2024-02-08 20:43:32 +01:00
arch1t3cht 069cd48cac Merge branch 'bugfixes' into feature 2024-01-20 00:13:37 +01:00
arch1t3cht 7e24a5f3a5 Fix compilation error for assdraw command
This broke on wxWidgets master.
Really this command could just be removed entirely but I'll keep it
around for now.
2024-01-20 00:12:43 +01:00
arch1t3cht 6af7c6bddf Merge branches 'workarounds' and 'bestsource' into feature 2023-12-27 06:53:22 +01:00
0tkl 167b4add50 bestsource: Update ffmpeg API usage for keyframes 2023-12-27 06:52:56 +01:00
0tkl 29c8054b50 Update ffmpeg wrap to 6.1 2023-12-27 06:50:37 +01:00
arch1t3cht b0c77beef6 Merge branch 'bugfixes' into feature 2023-12-26 16:54:47 +01:00
arch1t3cht 8650e12364 Download hunspell dictionaries from GH repo
Since the download from SourceForge frequently fails,
the English dictionaries are now hosted in a TypesettingTools
repository.
2023-12-26 16:53:32 +01:00
arch1t3cht eca52e4166 Merge branch 'workarounds' into feature 2023-12-26 16:20:07 +01:00
arch1t3cht 8e60a46c01 Work around double buffering issue in wx master
See https://github.com/wxWidgets/wxWidgets/issues/23585 .
This patch reverts commit fb4f0b590c42a66263debf926617c00b157c9a in
wxWidgets.
2023-12-26 16:16:12 +01:00
arch1t3cht 1eea4ca69c Remove stray BOM in dav1d patch 2023-12-26 16:15:39 +01:00
arch1t3cht 7f928e8d6d Merge branch 'bugfixes' into feature 2023-12-02 18:08:47 +01:00
arch1t3cht 592bd993d7 Remove iconv's stdbool.h
This was breaking things (libass) and doesn't seem to be
needed any more.
2023-12-02 18:08:36 +01:00
arch1t3cht 160cf46b98 Merge branch 'bugfixes' into feature 2023-12-02 17:27:55 +01:00
arch1t3cht df9d442102 Fix AviSynth paths for portable build (again) 2023-12-02 17:26:00 +01:00
arch1t3cht ce557d98e4 Use crash_writer_minidump on Windows
This was done in Aegisub/Aegisub.
2023-12-02 17:21:11 +01:00
arch1t3cht 786f082673 Merge branch 'workarounds' into feature 2023-11-24 23:10:07 +01:00
arch1t3cht ffb95f1375 Bump wxWidgets wrap back down to 3.1.4
Fixes arch1t3cht/Aegisub#99 .
Of course one day icon scaling should be sorted out properly,
but for now let's just revert.
2023-11-24 23:08:49 +01:00
arch1t3cht 8947e20dbb Merge branch 'bugfixes' into feature 2023-11-24 21:02:09 +01:00
arch1t3cht 18d088c479 Fix hunspell include and wrap 2023-11-24 20:53:07 +01:00
arch1t3cht 20caaabc07 Merge branch 'vapoursynth' into feature 2023-11-23 11:32:41 +01:00
arch1t3cht 928a2d4c6c vapoursynth: Fix lwindex parsing when video is not the first stream
SubKt my beloved...
This was broken in 0d281af269 and is fixed
in a more robust way in this commit.
2023-11-23 10:00:11 +01:00
arch1t3cht 07fa563fa6 vapoursynth: Ignore __aegi_timecodes on single-frame clips
The vfr class (understandably) does not like timecode lists with only
one element, so the current default script breaks when opening images.
So to not bloat the default script too much we just ignore
__aegi_timecodes in the provider in these cases.
2023-11-23 09:40:04 +01:00
arch1t3cht 5ceaa45f3a Merge branch 'bugfixes' into feature 2023-11-21 21:20:52 +01:00
arch1t3cht 4576ac0638 luajit: Remove checkdef for SSE
This isn't actually set in luajit's Makefile. Maybe it was at some
point in the past, but there's no trace of it now.

Fixes arch1t3cht/Aegisub#98 .
2023-11-21 21:19:06 +01:00
arch1t3cht 693959801f ci: Add manual trigger option 2023-11-15 19:04:50 +01:00
arch1t3cht 752a14cc25 Merge branch 'bugfixes' into feature 2023-11-06 22:45:06 +01:00
arch1t3cht 24c8144e91 meson: luajit: Set correct LUAJIT_TARGET for buildvm
On native builds this is derived automatically, but on cross builds
it needs to be set explicitly.
2023-11-06 22:44:18 +01:00
arch1t3cht 1ba7979ff4 meson: luajit: Remove unused readline dependency 2023-11-06 22:44:03 +01:00
arch1t3cht d728ce0e78 meson: Don't run tests on cross builds
This can be made into an option or whatever when cross builds that
can/need to run tests show up, but for now this is enough.
2023-11-06 22:12:30 +01:00
arch1t3cht fd753c58a5 Merge branch 'vapoursynth' into feature 2023-11-03 02:27:20 +01:00
Setsugennoao 568597bddc vapoursynth: Fix VSScript DLL loading
We do this by first trying to fetch its location from the registry, then PATH
2023-11-03 02:24:46 +01:00
arch1t3cht 95500b84fd Merge branch 'vapoursynth' into feature 2023-11-01 20:35:21 +01:00
arch1t3cht 0d281af269 vapoursynth: Fix lwindex parsing for files with multiple video streams 2023-11-01 20:32:32 +01:00
arch1t3cht fac664ad10 Merge branch 'workarounds' into feature 2023-10-27 16:41:40 +02:00
arch1t3cht 6dda04da9f Revert "Parially revert fffb138b8175b4838b6a063863756b7c6b2db547"
This reverts commit c487dd2bdb.

Revert the commit that
partially reverted fffb138b81 ...
It turns out that this very much did break IME input, so reverting
this for now. This does make Aegisub use private symbols in wx again,
but the CI builds build wx from the wrap now. Still, this is why
this is on the workarounds branch. If this breaks for too many
people this could either go behind a meson option or be fixed in
some better magical way that I have yet to find.

Fixes arch1t3cht/Aegisub#90
Fixes arch1t3cht/Aegisub#91
2023-10-27 16:40:21 +02:00
arch1t3cht dd303b1c9d Merge branch 'misc' into feature 2023-10-25 20:20:55 +02:00
arch1t3cht 2ac3bdf870 Allow reading compressed subtitles from mkv
The error handling inside of read_subtitles is a bit clumsy here,
but it's probably the best we can get without bigger refactors.
2023-10-25 20:20:04 +02:00
arch1t3cht 795dffc072 Merge branch 'bugfixes' into feature 2023-10-18 23:30:11 +02:00
arch1t3cht 45fdaecd72 ci: Install setuptools
After Python 3.12 released, meson doesn't seem to like the python
installed by actions/setup-python any more.
2023-10-18 23:29:20 +02:00
arch1t3cht 4a939d1954 Merge branches 'vapoursynth' and 'fixes' into feature 2023-10-18 21:22:54 +02:00
arch1t3cht 47b10e5ffc Fix progress dialog when switching from indeterminate to setting progress 2023-10-18 21:21:37 +02:00
arch1t3cht 2dbee37ad8 vapoursynth: Copy aegisub_vs.py to build folder for testing 2023-10-18 14:51:28 +02:00
arch1t3cht a1b3e0d9f1 vapoursynth: Allow scripts to control the progress dialog
This happens via VapourSynth's message logger.
Also add wrapper functions for this to aegisub_vs.py and add progress
updates everywhere - both to improve UX and to help with debugging for
when scripts get stuck somewhere.
2023-10-18 14:51:28 +02:00
arch1t3cht 79b3f4ccb0 vapoursynth: Add option to enable/disable user plugin loading
On Windows, plugins are shipped with Aegisub now and loaded from
aegisub_vs.py, so user plugins installed out of Aegisub are more
likely to just interfere with that (like when the user has an
old version of libvslsmashsource installed).
So this option defaults to off on Windows, but to on everywhere else
since VS plugins aren't shipped with Aegisub there.

Note that this option only disables autoloading of user plugins.
VapourSynth loads system plugins no matter what.
2023-10-18 13:31:47 +02:00
arch1t3cht 4ebdc2b82c Merge branches 'bugfixes', 'video_provider_rework' and 'avisynth' into feature 2023-10-17 18:31:11 +02:00
arch1t3cht fabc6e436f osx: Sign executable and libraries after bundling 2023-10-17 18:26:49 +02:00
arch1t3cht 858f4acf35 avisynth: Decrease refcount again when constructor fails
Proper fix to the issue that f5a730fa45
was trying to fix.

Fixes arch1t3cht/Aegisub#61 .
2023-10-15 23:08:39 +02:00
arch1t3cht a9eed184c2 Revert "avisynth: Only increase refcount when fully initialized"
This reverts commit f5a730fa45.
2023-10-15 22:58:23 +02:00
arch1t3cht dd3016a89d Further fixes to audio/video provider selection
- Fix selection not aborting when the preferred provider returns null
- Fix the default video provider being "ffmpegsource" (lowercase)
  instead of "FFmpegSource", which would trip up provider selection
- More generally, make sure the preferred video provider actually exists
  and fall back to the default (FFmpegSource) if not.

Fixes arch1t3cht/Aegisub#23 .
Fixes arch1t3cht/Aegisub#61 .
Fixes arch1t3cht/Aegisub#83 .
2023-10-15 22:27:21 +02:00
arch1t3cht 07c4f26a8e ci: Install nasm for Ubuntu AppImage build
Ubuntu doesn't have ffmpeg 6.0 yet, but we want to bundle ffms2 master
since the distro version still has seeking issues. Compiling the ffmpeg
wrap needs nasm.
2023-10-14 00:51:32 +02:00
arch1t3cht b3eb182259 Merge branch 'bugfixes' into feature 2023-10-13 23:56:15 +02:00
arch1t3cht ee247419b6 Merge branch 'workarounds' into feature 2023-10-13 23:55:52 +02:00
arch1t3cht b8f4c98c4c Move iconv include to charset_conv.h
On newer mac sdks iconv_t is defined differently, so it's harder to
just have a typedef for it.
2023-10-13 23:52:26 +02:00
arch1t3cht c67ba9f70c Update ffmpeg wrap to 6.0 following ffms2 updates
Also bump libdav1d and turn the wrap patches into diffs. This requires
bumping the minimum meson version to 0.63, but meson 1.0 is available
pretty much everywhere now so this should be fine.
2023-10-13 23:46:11 +02:00
arch1t3cht 9bc3cad79e Add remaining dasm flags in luajit wrap
This now matches the makefile. Also stop hardcoding the flags
for MSVC, since cc.get_define seems to work properly there now.
2023-10-13 23:26:01 +02:00
arch1t3cht 82b7e96cea Merge branches 'bugfixes' and 'fixes' into feature 2023-10-13 00:36:09 +02:00
arch1t3cht a631bf192c lua: Fix dialog dropdowns that are empty by default on Mac 2023-10-13 00:32:36 +02:00
arch1t3cht ad92ccf01a Fix cleantags with \k tags with noninteger durations
Fixes arch1t3cht/Aegisub#92 .
2023-10-13 00:26:26 +02:00
arch1t3cht 4e6af75db4 Add proper endianness flag for dasm in luajit wrap
Fixes luajit almost completely breaking on aarch64 and probably
other non-x86 architectures.
2023-10-12 23:04:22 +02:00
arch1t3cht 61ec2bc3e7 Merge branch 'fixes' into feature 2023-09-17 18:49:10 +02:00
arch1t3cht edae653584 Deduplicate automation autoload path, for real this time
Replaces the incorrect fix in 642251b
Fixes arch1t3cht/Aegisub#15
2023-09-17 18:47:42 +02:00
arch1t3cht 8fb8e90006 Merge branches 'bugfixes' and 'workarounds' into feature 2023-09-12 16:18:00 +02:00
arch1t3cht 49139f0a22 Fix OSX library wrangling when libs use @rpath or @loader_path
Fixes arch1t3cht/Aegisub#77
2023-09-12 16:16:40 +02:00
arch1t3cht d10ffebe35 Fix dictionary download on mac when osx-bundle is run more than once 2023-09-12 14:57:42 +02:00
arch1t3cht 9acb673457 Also add Dark Mode option on OSX
While it's not actually exposed there, it's used internally in various
GUI code.
2023-09-12 14:55:21 +02:00
arch1t3cht 1fde843630 Merge branches 'fixes' and 'bugfixes' into feature 2023-09-10 14:04:30 +02:00
arch1t3cht 4a97bb0dd2 meson: Update luajit wrap for luajit's rolling releases 2023-09-10 14:04:04 +02:00
Alex James 4f67db8dd7 libaegisub: Avoid calling iconv_close(iconv_invalid)
IsConversionSupported unconditionally calls iconv_close on the
descriptor returned by iconv_open. This may result in crashes if
iconv_open returns iconv_invalid.
2023-09-07 19:38:59 +02:00
arch1t3cht 41ef3fa56a vapoursynth: Remove old and incorrect docstring sentence 2023-09-05 00:21:11 +02:00
arch1t3cht 11fece4c03 Merge branch 'vapoursynth' into feature 2023-08-15 16:05:01 +02:00
arch1t3cht b2ee8ac036 vapoursynth: Make loading error messages a bit more helpful 2023-08-15 16:04:53 +02:00
arch1t3cht a867f0cc30 Merge branch 'workarounds' into feature 2023-08-09 18:30:51 +02:00
arch1t3cht 418514456e Disable sunken or raised borders for dark mode
Co-authored-by: arch1t3cht <arch1t3cht@gmail.com>
2023-08-09 18:29:04 +02:00
sepro 061a860e2e Add option to enable experimental dark mode 2023-08-09 18:07:52 +02:00
sepro 5944d7999c Add option to build on wxWidgets master 2023-08-09 18:07:13 +02:00
sepro 0f897ba0eb Add nasm fallback url 2023-08-09 18:03:11 +02:00
arch1t3cht 4659bb2802 Merge branch 'bugfixes' into feature 2023-08-09 18:02:46 +02:00
sepro 0637bcdc7f Add nasm fallback url 2023-08-09 18:01:09 +02:00
arch1t3cht 0b7ea58cd6 meson: Add libresrc headers as dependencies
These are included in the Aegisub source files, so they need to be
generated before compiling.
2023-08-01 14:07:56 +02:00
arch1t3cht 239d585512 Merge branches 'vapoursynth' and 'fixes' into feature 2023-07-31 23:55:51 +02:00
arch1t3cht c61f149a37 Merge branch 'fixes' into feature 2023-07-31 23:48:14 +02:00
arch1t3cht 47c923d4ed unicode-monkeypatch: use tostring() in io.open error handling
msg can be nil, which would previously error out when trying to print it.
2023-07-31 23:41:43 +02:00
arch1t3cht 263c2b9189 vapoursynth: Make askyesno method configurable
In particular, don't always import tkinter.messagebox since not all
Python distributions include tkinter.
2023-07-29 20:08:54 +02:00
arch1t3cht 66127f8c40 Merge branch 'bugfixes' into feature 2023-07-18 16:02:24 +02:00
0tkl 0fd12795da fix typo in meson wrap file 2023-07-18 16:01:59 +02:00
arch1t3cht a957af9a12 Merge branch 'bugfixes' into feature 2023-07-16 19:51:16 +02:00
arch1t3cht 6754ff8775 installer: Update paths to Avisynth libraries 2023-07-16 19:51:05 +02:00
arch1t3cht f9be4a854f Merge branches 'workarounds' and 'video_provider_rework' into feature 2023-07-16 17:57:09 +02:00
arch1t3cht d97c16cb7c Disable icu subproject in harfbuzz
Harfbuzz updated its ICU detection, which now picks up our subproject,
but isn't actually compatible with it.
2023-07-16 17:56:23 +02:00
arch1t3cht d3325eef6c Revert "meson: revert icu detection in harfbuzz"
This reverts commit 36a18e5ba3.
2023-07-16 17:55:32 +02:00
arch1t3cht dbe30b4da5 Revert "Point Yutils to fixed fork"
This reverts commit 12a5050365.
2023-07-16 17:55:19 +02:00
arch1t3cht 02567c2265 Rework the audio/video provider system
This became necessary now that more providers were added. Providers can
be proritized for certain file types (e.g. .vpy files will always be
opened with VapourSynth), and when the default provider fails on a file,
the user will be notified and be asked to pick an alternative provider.
2023-07-16 17:52:21 +02:00
arch1t3cht 7ca8b4c008 Merge branch 'misc' into feature 2023-07-14 00:06:52 +02:00
arch1t3cht 644a4ca9f7 Allow fractional frame rates in dummy video
The validation code for the dummy video dialog is kind of dirty but I've
had this lying around for months and just want to get it done...
2023-07-14 00:05:46 +02:00
arch1t3cht 96123cb6da Merge branch 'xa2-ds' into feature 2023-07-12 02:52:58 +02:00
arch1t3cht 42c71c4775 Add XAudio2 redistributable DLL for older Windows versions
The CI builds link against XAudio2_9, which isn't available on Windows 8
and lower. As a quick and dirty workaround, this commit ships the
XAudio2 redistributable on those older Windows versions. Simply renaming
the redistributable to XAudio2_9.dll isn't strictly allowed by the
documentation, but it works and is probably an acceptable hack to
support an outdated operating system...

Fixes arch1t3cht/Aegisub#16 .
2023-07-12 02:49:09 +02:00
arch1t3cht 0479b310e8 Merge branch 'video_panning_option' into feature 2023-06-27 02:15:54 +02:00
arch1t3cht 3f017bc29c video zoom: Add pan_reset command to video context menu 2023-06-27 02:15:18 +02:00
arch1t3cht eb6f31c077 Merge branch 'lua_api' into feature 2023-06-21 21:31:03 +02:00
arch1t3cht e483c5e48f lua: Fix crash after 79050df
Replacing all uses of LuaToAssEntry with LuaToTrackedAssEntry
also replaced its use in LuaParseKaraokeData, which would cause a double
free when canceling a script after calling parse_karaoke_data.
2023-06-21 21:29:23 +02:00
arch1t3cht 9e8ac83998 Merge branches 'vapoursynth' and 'info' into feature 2023-06-11 01:22:14 +02:00
arch1t3cht 1f6684823c vapoursynth: Add "ask" mode for get_keyframe 2023-06-11 01:22:06 +02:00
arch1t3cht fd401f059a README: Clarify where to find builds and some other updates 2023-06-10 02:08:45 +02:00
arch1t3cht d06a31968d vapoursynth: Add buttons to set default scripts to default 2023-06-08 18:41:12 +02:00
arch1t3cht 7bc18fec26 Merge branch 'folding' into feature 2023-06-01 23:35:39 +02:00
arch1t3cht b41f6bde71 Don't immediately delete unused extradata entries
Instead, count how many consecutive times the entry has been found to be
unused and delete it once that count exceeds a limit. This will prevent
excessive reallocating of extradata ID's in applications like folding.
2023-06-01 23:35:26 +02:00
arch1t3cht 58d6ab520b folding: Also update counterpart for fold operations
This wasn't necessary before since the internal representation of
folds is be checked for consistency after each commit, but after the
switch to extradata fold operations would leave the extradata in an
invalid state. This isn't technically a problem, but it does leave more
extradata entries lying around than necessary, and it can trip up
automation scripts that aren't prepared for inconsistent fold state.
2023-06-01 23:01:32 +02:00
arch1t3cht 58c0130d81 Fix default hotkeys commands for splitting lines
These commands were revamped in 0ef9963 but the default hotkeys were
never updated. The hotkeys were automatically migrated, but resetting
the settings back to defaults would still set invalid settings.
2023-05-30 01:45:53 +02:00
arch1t3cht dba4f4924e Merge branches 'lua_api' and 'bugfixes' into feature 2023-05-29 14:52:31 +02:00
arch1t3cht f3d6eea3b9 Fix AppImage build on CI 2023-05-29 14:43:34 +02:00
wangqr 055c87cd21 Reallocate static ranges for wxMenuItem
Previously different menus may use conflict ids in range 10000~.

Fix TypesettingTools/Aegisub#53
See also Aegisub/Aegisub#131
2023-05-25 23:13:05 +02:00
arch1t3cht 42f7e53e92 lua: Don't check_stack in LuaCheckStack destructor
This would cause an assertion failure in functions like lua_for_each
when the given closure throws an error and thus leaves some  values on
the stack. This can make Aegisub crash entirely instead of just catching
and reporting the error. Instead, these stack_checks can be done
manually.
2023-05-22 09:23:22 +02:00
arch1t3cht 79050dfdfb lua: Fix memory leak on aegisub.cancel() 2023-05-21 20:26:33 +02:00
arch1t3cht 64b92a95ac folding: Simplify fold operation code 2023-05-19 18:45:40 +02:00
arch1t3cht 5e51c59e8e Merge branch 'vector_clip_actions' into feature 2023-05-18 23:40:56 +02:00
arch1t3cht c8f8e8ac42 visual tools: Add setting for shape handle size 2023-05-18 23:39:00 +02:00
arch1t3cht 4365b16524 Merge branch 'pr_at_po-de' into feature 2023-05-01 17:33:48 +02:00
arch1t3cht b150b6bfc7 po/de: Add missing space 2023-05-01 17:08:33 +02:00
Oneric a6cf70ba59 po/make_pot: also update PO files
While meson already provides the aegisub-update-po target
for this exact purpose, it insists on also running meson’s
aegisub-pot target first, leading to missing translation strings.
2023-04-30 18:09:48 +02:00
Ananji Peixoto da Costa 0e9dd4b311 po/pt_BR: fix antes/depois confusion
pt_PT already uses the correct translation.
Cherry-picked-from: d771fb21af
2023-04-30 17:56:05 +02:00
Oneric 2f4258a8b4 po/de: add some trivial translations 2023-04-30 17:56:05 +02:00
Oneric 5b66d473d2 po/de: fix a few errors
Implements suggestions by arch1t3cht.
2023-04-30 17:56:05 +02:00
Oneric da9842b70c po/de: import German translation from wangqr’s fork
This fixes a bunch of misspellings, borked C format strings and
increases translation coverage from 1288/1612 to 1516/1612
where still missing strings mostly don’t exists in wangqr’s build.

Original commit:
98abe53b15
2023-04-30 17:56:05 +02:00
Oneric 6b3cb7ec63 po: regenerate pot and po files
Using make_pot.sh and
  msgmerge --no-fuzzy-matching --sort-by-file $i.po aegisub.pot
since meson’s aegisub-pot target are still not covering all
translatable strings yet.
2023-04-30 17:56:05 +02:00
Oneric bc3358fcfe po/make_pot: increase portability across shells
Base POSIX leaves the handling of backslahes in the operand
implementation defined. The XSI extension specifies several
escape sequences, like e.g. \n, which shall be transformed
upon printing.
Current make_pot.sh expects XSI behaviour and indeed e.g.
dash’s echo builtin implements this. echo builtins of other common
shells such as bash however, do not (by default). Avoid this portability
pitfall by just using printf at all relevant places. See:
  https://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
  https://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html

This also allows us to stop substituting each backslash with four
backslashes before piping to maybe_append. This substituion existed
to safely pass backslahes through maybe_append’s two layers of echo.

Also improve quoting. For consistency prefer single-quote quoting over
shell backslash escapes. QUote the unguarded *.lua to ensure it will
continue to work if there happen to be any lua files in the scripts
working directory.

This supersedes commits from wangqr/Aegisub which adjusted quoting and
echo usage to work with different shells. This is more throughout and
doesn't introduce semi-broken intermediate states.
  0fbcaea871
  4aee271d03
  940181c7bc
(Note the second commit actually didn't manage to achieve the intended
portability, since several echo usages remained and it forgot to adjust
the backslash substitution, which was then fixed in the third commit.)
2023-04-30 17:46:20 +02:00
Oneric f417f6f1ad po/Make_pot: replace xmlstarelet+jq with gettext
gettext can deal with AppData (and other XML files)
since version 0.19.6 (2015). We already depend on gettext anyway so
let’s utilise this, to get rid of two build dependencies and simplify
the extraction logic.
This depends on the removal of underscore prefixes
as done in a prior commit.

After this the developer name "Aegisub Group"
is now also treated as a translateable string.
2023-04-30 17:40:55 +02:00
Oneric 6d9901ee3c po/make_pot: use gettext to process desktop file
gettext understands desktop files since 0.19 (2014),
so there’s no need for custom grep logic. This change
matches meson’s i18n which also uses gettext for this.

As a side efffect of this some long strings now get
broken into multiple lines (cosmetic only) and some
blank line gaps are normalised by gettext.

Cherry picks: 0e29c8d0e4
With fixups from: e98b7292f1
2023-04-30 17:38:28 +02:00
Oneric afa290ecfb po/make_pot: don't silently omit strings if utilities are missing
Instead abort the script on any errors, which
also helps detecting other unexpected errors.

Adopts parts of: 940181c7bc
  and 4aee271d03
2023-04-30 17:10:27 +02:00
Oneric 87d810254c po/make_pot: sort lua files in POT
find may output matching files in any order.
To avoid unnecessary changes between regeneration
sort its output. For C++ sources xgettext’s --sort-by-file
already has an equivalent effect. All other files are already
statically listed in a fixed order.

Adopts part of: 4aee271d03
2023-04-30 17:10:27 +02:00
Oneric 5c00368e85 build: consider all translation keywords for C++
And document which aprts are still missing.
The keyword list is are copied from make_pot.sh.
Sorting by file helps keeping future PO(T) update diffs small'ish
and is also done in wangqr’s PO-file update procedure. (POT file
generation also sorts, but by preapplying `LC_ALL=C sort` to the
file list instead of using xgettext’s sorting option.)

Without this, meson’s aegisub-pot missed the majority of translatable
strings from C++ sources. While this brings the target much closerto
make_pot.sh, the remaining strings aren't straigthforward to integrate
unfortunately. At the time of writing meson has no support for iss files
and make_pot.sh uses custom logic to select only specific strings
from Lua and JSON files.

Even after this commit, POT updates should
thus still continue to use make_pot.sh.
2023-04-30 17:10:24 +02:00
Oneric 8c35b1d642 Integrate appdata.xml into meson build
It used to be genrated and installed by the old custom build system,
but apparently got lost in switching to meson.

Rename to .in.in instead of .template.in, since i18n otherwise gets
utterly confused failing to recognise the file type and both erroring
out with "no ITS rules found" during merge_file and failing to extract
any translatable strings.
Also drop underscores which were previously processed by intltool.

This doesn't yet automatically replace the release version and date
in the appdata file, but neither did the old build.

Note: while this slightly improves the situation, meson’s aegisub-pot
target is still missing many strings. make_pot.sh should be used.
2023-04-30 03:09:56 +02:00
Oneric 2b33e45f23 Update links in appdata.xml 2023-04-30 03:09:56 +02:00
Oneric 66efa84eed Integrate desktop file translation into meson
meson’s i18n module get’s confused by .template and fails
to extract translatable strings, thus rename to in.in.

Note: while this slightly improves the situation, meson’s aegisub-pot
target is still missing many strings. make_pot.sh should be used.
2023-04-30 03:09:56 +02:00
Oneric 429455263f Fix generation and translation of desktop file
a91c4f70c3 switched processing of the
desktop file from intltool to gettext-backed i18n.merge_file and dropped
leading underscores which used to be processed by intltool.

However, this commit omitted dropping the underscore from Keywords,
resulting in this field being stripped from the installed version.

Furthermore, make_pot.sh was broken since it too relied on the
underscore meaning POT regeneration will now remove the desktop files
strings from translation files.
Since it was not added to po/POTFILES meson’s native aegisub-pot target
also doesn't add desktop file strings to the translation pool. Though,
this target still misses a lot of other strings as well and shouldn't be
used yet anyway.

This commit removes leftover underscores and reintegrates desktop file
strings into both make_pot.sh. Integration into aegisub-pot is done in a
follow-up commit.
2023-04-30 03:09:56 +02:00
arch1t3cht db0e79323f Merge branch 'vapoursynth' into feature 2023-04-29 21:28:36 +02:00
arch1t3cht 3d278547fe vapoursynth: Add Mac support 2023-04-29 21:24:14 +02:00
arch1t3cht ff20805ae6 Merge branch 'vector_clip_actions' into feature 2023-04-29 01:16:08 +02:00
arch1t3cht 20cc0b8077 perspective tool: Support drawings
This will not work in more complex cases like lines containing both text
and drawings, but it's correct in simpler ones.
2023-04-29 01:11:38 +02:00
arch1t3cht 9c2d6169c6 perspective tool: Fix uninitialized variable 2023-04-29 01:11:15 +02:00
arch1t3cht 82dffcb9f9 Disallow negative spacing in style editor again
Since it turns out that this is not supported by the renderer anyway,
see arch1t3cht/Aegisub#48 .
2023-04-27 16:02:26 +02:00
arch1t3cht 00e241d74b Merge branches 'video_panning_option' and 'bestsource' into feature 2023-04-23 15:39:41 +02:00
arch1t3cht 0c057ebddb bestsource: Unify some messages with ffms2's 2023-04-23 15:39:11 +02:00
arch1t3cht 0f13a75a42 video zoom: Fix reset command capitalization 2023-04-21 22:59:02 +02:00
arch1t3cht 18fd966bd9 Merge branch 'bugfixes' into feature 2023-04-21 16:38:55 +02:00
arch1t3cht 165cb14879 Add AppImage build on linux
This consists of a meson option that
- sets a flag to make Aegisub read paths relative to the executable
- makes meson set up the symlinks like AppRun and .DirIcon as following
  the AppDir format

and a CI workflow that builds with this option, installs to an AppDir
directory, and bundles it as an AppImage.

Modified from arch1t3cht/Aegisub#12 .

Co-authored-by: Fred Brennan <copypaste@kittens.ph>
2023-04-21 16:23:01 +02:00
arch1t3cht 43d65b906b Also detect fonts used in drawings in font collector 2023-04-07 18:49:09 +02:00
arch1t3cht 26a5f00c8a Merge branch 'bugfixes' into feature 2023-03-28 08:40:58 +02:00
arch1t3cht 8633e2c4ae mac: Statically link ffms2
This is to make sure we're building the git version that fixes the
PAFF seeking regression and contains the workarounds for VPX/AV1.
2023-03-28 08:39:04 +02:00
arch1t3cht 1de8d04a43 Merge branches 'bugfixes' and 'vapoursynth' into feature 2023-03-24 20:31:07 +01:00
arch1t3cht 883a1b2a73 installer and ci: Throw more errors on failure
This makes it easier to notice when installer generation failed.
2023-03-24 20:30:17 +01:00
arch1t3cht 0d5063bf79 Ship en_US hunspell dictionaries on Windows and OSX
For now, this uses the same OpenOffice dictionaries that were used in
previous official releases, downloaded from
https://sourceforge.net/projects/openofficeorg.mirror/files/contrib/dictionaries/
In the future this could be updated to some newer dictionary like
SCOWL's.

Fixes arch1t3cht/Aegisub#21.
2023-03-24 20:30:17 +01:00
LightArrowsEXE 178551071e make_keyframes: Set default format to GRAY8
This will allow clips with non-standard resolutions to be downscaled without any concerns.
2023-03-24 01:01:29 +01:00
arch1t3cht 9a7314015f vapoursynth: Unify capitalization 2023-03-24 01:01:29 +01:00
arch1t3cht af9d659c93 vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-24 01:01:29 +01:00
LightArrowsEXE 84d67c73b0 make_keyframes: Set default format to GRAY8
This will allow clips with non-standard resolutions to be downscaled without any concerns.
2023-03-16 15:14:08 +01:00
arch1t3cht 256ddab369 vapoursynth: Ship plugins on windows and add ensure_plugin function 2023-03-16 02:26:10 +01:00
arch1t3cht 61b8a16cd8 vapoursynth: Unify capitalization 2023-03-16 02:26:10 +01:00
arch1t3cht 041e9fc70c vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-16 02:26:10 +01:00
arch1t3cht e7e56ef5e0 Fix validation for perspective/lock_outer 2023-03-04 13:32:55 +01:00
arch1t3cht 5050bad8ac lua: Scroll large dialogs automatically 2023-03-04 12:52:46 +01:00
arch1t3cht d2c46f5dca bestsource: Forward error messages 2023-02-28 15:17:11 +01:00
arch1t3cht 798262ff1c Merge branch 'fixes' into feature 2023-02-25 12:33:15 +01:00
arch1t3cht 15d215f36d lua: Interact with clipboard on main gui thread
Fixes arch1t3cht/Aegisub#22 .
2023-02-25 12:31:27 +01:00
arch1t3cht fde3dd0dbf Merge branch 'fixes' into feature 2023-02-25 02:24:28 +01:00
arch1t3cht 7f52346f06 lua: Handle file dialogs completely on main gui thread
wx doesn't seem to like the dialogs being created on some other worker
thread, which makes file dialogs opened by lua scripts crash in various
ways on Linux. Doing everything on the main thread hopefully fixes this.

Fixes TypesettingTools/Aegisub#51 .
2023-02-25 02:22:13 +01:00
arch1t3cht 6f073c6a31 Merge branch 'vapoursynth' into feature 2023-02-24 01:42:58 +01:00
arch1t3cht 1f2eaaf6e4 vapoursynth: Show logged messages in progress window 2023-02-24 01:42:30 +01:00
arch1t3cht 097a0f45be vapoursynth: Remove file access checks
These are broken in some edge cases, such as smb mounts on Windows.
Paired with d96fc1f70d.
2023-02-24 01:42:30 +01:00
arch1t3cht 628d740108 vapoursynth: Add status dialog when running script 2023-02-24 01:42:30 +01:00
arch1t3cht ad38400ab9 vapoursynth: Improve default scripts and add utility functions
Add a utility library that wraps LWLibavSource and can parse its .lwi
file to obtain timecodes and keyframes. It also contains a function to
generate and save keyframes using WWXD or Scxvid. Update the default
scripts to use these functions.
2023-02-24 01:42:30 +01:00
arch1t3cht b5a646de66 Merge branch 'vapoursynth' (early part) into feature 2023-02-24 00:30:21 +01:00
arch1t3cht 8b605c8fb5 Merge branches 'workarounds', 'bestsource', 'misc', 'info', 'wangqr_gui', 'fixes' and 'avisynth' into feature 2023-02-24 00:29:28 +01:00
wangqr bf240c9770 Add Apply button to select lines dialog
Allow modifying selection without closing dialog.

Fix wangqr/Aegisub#49
2023-02-24 00:13:22 +01:00
wangqr c7d757b91e Save state of "show original"
Fix wangqr/Aegisub#41
2023-02-24 00:11:12 +01:00
arch1t3cht e425ce4d9e vapoursynth: Allow __aegi_timecodes to be a path to a timecodes file 2023-02-23 23:55:00 +01:00
arch1t3cht 29ba61e55d vapoursynth: Allow __aegi_keyframes to be a path to a keyframes file 2023-02-23 23:55:00 +01:00
arch1t3cht 384fc69208 vapoursynth: Allow script to supply timecodes, keyframes, and audio flag
These are read from the __aegi_timecodes, __aegi_keyframes, and
__aegi_hasaudio variables respectively.
2023-02-23 23:54:56 +01:00
arch1t3cht e994934e24 Link ffmpeg with dav1d to enable AV1 support.
The patched meson.build for dav1d just changes the include_directories
from 'include/dav1d' to 'include' and, while we're at it, removes the
pkg_config stuff to avoid a deprecation warning.

AV1 decoding is pretty broken in upstream ffms2, so point the wrap to a
fork that has some hack patches for it. BestSource works fine out of the
box, though.
2023-02-20 17:16:23 +01:00
arch1t3cht d399e44061 bestsource: Always get exact duration
Fixes arch1t3cht/Aegisub#27.
2023-02-13 17:05:05 +01:00
arch1t3cht 7485ae46a1 bestsource: Fix timecode computation
(derp.)

Fixes arch1t3cht/Aegisub#27.
2023-02-13 13:34:08 +01:00
arch1t3cht 1734f00d8a Don't assume a max length in fs::ShortName 2023-02-12 15:05:21 +01:00
arch1t3cht 6874419564 Make touch pad scroll in the subtitle grid smoother 2023-02-10 00:55:44 +01:00
arch1t3cht 9a9cc66b27 README: Add required vapoursynth plugins for default script 2023-02-09 12:50:49 +01:00
arch1t3cht d7e7c3a7f0 Set longPathAware in manifest 2023-02-09 02:36:39 +01:00
arch1t3cht 464c4f9f4e Add manifest as regen dependency 2023-02-09 02:36:39 +01:00
arch1t3cht 6704a8e57d avisynth: Remove file access checks
These are broken in some edge cases, such as smb mounts on Windows.
Paired with d96fc1f70d.
2023-02-08 17:41:31 +01:00
arch1t3cht d96fc1f70d Don't try other providers after FileNotFound error
Otherwise this can cause confusing error messages from unrelated
providers when simply opening an invalid path.
2023-02-08 17:37:44 +01:00
wangqr e4f0a9a510 Fix initial state of AudioTimingControllerDialogue
It should not be in alt-dragging mode by default.

Fix TypesettingTools/Aegisub#32
2023-02-08 00:50:48 +01:00
arch1t3cht c348f8582a vapoursynth: Add a preferred cache directory and clean it when necessary 2023-02-05 02:32:57 +01:00
arch1t3cht 32aaf6372c vapoursynth: Set path variables and import path in python 2023-02-05 02:28:06 +01:00
arch1t3cht 15f4da61d3 bestsource: Clean index cache when necessary 2023-01-31 02:47:02 +01:00
arch1t3cht 5dfa94d22d Fix missing comma in videoList
... ever wondered why you can't drag .webm files into Aegisub?
This is why.
2023-01-31 02:06:54 +01:00
arch1t3cht e2fb3a7e43 bestsource: Pin wrap
This is to fix upstream not compiling against ffmpeg 4.4 anymore.
2023-01-30 17:22:43 +01:00
arch1t3cht 66c90b7ed8 vfr: Ensure nonzero denominator 2023-01-30 01:56:52 +01:00
arch1t3cht 88867d402c vapoursynth: Default to 25fps when no clip fps set
This matches the behavior of the FFMS video provider.
2023-01-30 01:55:22 +01:00
arch1t3cht 79a0655eb8 Merge branch 'folding' into feature 2023-01-27 02:55:50 +01:00
arch1t3cht 57572e5686 Merge branch 'vector_clip_actions' into feature 2023-01-26 23:34:27 +01:00
arch1t3cht a632f5f7ee Revert "Merge branch 'vector_clip_actions' into feature"
This reverts commit bd4e79fdf9, reversing
changes made to 9d4a67b523.
2023-01-26 23:34:14 +01:00
arch1t3cht c6b901dfbe Merge branches 'bugfixes', 'workarounds', 'fixes', 'gui', 'xa2-ds', 'avisynth', 'vapoursynth' and 'video_panning_option' into feature 2023-01-26 23:12:07 +01:00
arch1t3cht 86dfadb852 Merge branch 'misc' into feature 2023-01-26 23:11:37 +01:00
arch1t3cht cd8169bdf2 Merge branch 'cibuilds' into feature 2023-01-26 23:05:17 +01:00
arch1t3cht 0485c1aaf0 ci: Run on every push
There's no monthly time limit anymore, so there's no harm in just
building on feature.
2023-01-26 23:02:49 +01:00
arch1t3cht 12a5050365 Point Yutils to fixed fork 2023-01-26 23:02:11 +01:00
arch1t3cht d860c710c0 Throw shit at the wall until it builds with boost 1.81
This is nothing more than duct tape, do not pull.
In the long run boost::filesystem should just be replaced with
std::filesystem (as done in tgoyne/Aegisub:cmake), but this would
complicate the history and cause merge conflicts for a bunch of pulls.
Hence this horrible temporary solution.
2023-01-26 22:56:53 +01:00
arch1t3cht 0d16753d0a Patch ffmpeg wrap to make it find the zlib subproject 2023-01-26 22:56:53 +01:00
arch1t3cht 5c065dc74e Revert "Patch ffmpeg wrap to compile with simd extensions"
Support for these has been added upstream now.
This reverts commit 77cc1a6b22.
2023-01-26 22:56:53 +01:00
arch1t3cht 5dd001388b Revert "ffmpeg wrap: pin version"
This reverts commit 74d75a568e.
2023-01-26 22:56:53 +01:00
arch1t3cht f6954ab903 Point ffi-experiments to fixed fork 2023-01-26 22:56:53 +01:00
arch1t3cht 36a18e5ba3 meson: revert icu detection in harfbuzz 2023-01-26 22:56:53 +01:00
arch1t3cht 60897b2327 meson: Set NDEBUG on release builds
The old MSVC build system also set this:
6f546951b4/build/standard-settings.props (L62)
2023-01-26 21:04:04 +01:00
arch1t3cht 642251b2dd Deduplicate automation autoload path
Fixes TypesettingTools/Aegisub#168
Fixes arch1t3cht/Aegisub#15
2023-01-26 20:52:20 +01:00
arch1t3cht 36e5275418 visual tools: Add perspective tool 2023-01-25 23:24:11 +01:00
arch1t3cht 352e41f19b video zoom: Fix zoom when script_res != video_res 2023-01-20 00:18:51 +01:00
arch1t3cht 4c2b47d5de visual tools: Fix grid in RotateXY tool
Fix the grid scaling when the video is not at 100% zoom, and scale the
grid with \fscx / \fscy .
2023-01-14 14:20:24 +01:00
arch1t3cht ddfd4501f0 visual tools: Add more tag get functions
Add getters for alignment, outline, shadow, font size, and the raw
extents of the text. Also handle overriding \xbord and \ybord correctly.
2023-01-14 14:18:04 +01:00
arch1t3cht 9cfc72bd83 visual tools: Add RemoveOverride function 2023-01-14 14:16:05 +01:00
arch1t3cht 8b142a05e5 visual tools: Add EndDrag and EndHold hooks 2023-01-14 14:14:42 +01:00
arch1t3cht bfdf01df9a visual tools: Add general interface for setting subtools 2023-01-14 13:56:21 +01:00
arch1t3cht f5a730fa45 avisynth: Only increase refcount when fully initialized
When Avisynth is not installed or not functional, this would otherwise
cause a crash when trying to initialize Avisynth more than once, since
after the first time the refcount would have been incrased anyway.
2023-01-14 00:13:47 +01:00
arch1t3cht 0d0ed49546 vapoursynth: Only set loaded when fully initialized 2023-01-13 23:52:27 +01:00
arch1t3cht 8fc301fad4 ci: Use GITHUB_TOKEN if available 2023-01-12 13:36:39 +01:00
arch1t3cht d08726606f meson: Also add regen dependencies for bitmaps 2023-01-10 21:47:29 +01:00
arch1t3cht c0f337a992 Allow '+' and 'E' in numbers when tokenizing drawings 2023-01-07 14:42:52 +01:00
arch1t3cht 74b9353038 Allow higher decimal precision in style editor
Also, allow negative fsp.
This doesn't change the behaviour of the SpinCtrl increment/decrement
buttons, just the precision that can manually be set. Small values of
fsp can be useful as a hack to disable all ligatures. Precise values of
fscx/fscy can be useful to compensate for anamorphic resolutions. The
other fields were made more precise for consistency.
2023-01-07 14:42:52 +01:00
arch1t3cht 15cca59679 Validate wxVariant type in hotkey CommandRenderer
This fixes a crash on Windows when double-clicking the draggable
separator between the column headers "Command" and "Description" in the
hotkey configuration dialog.
2023-01-02 15:29:00 +01:00
arch1t3cht 1bd426f69a folding: Switch to extradata for storage
This makes the internal juggling of fold data even more complicated, but
it has a number of advantages:
- Folds will preserved even when opening the file with Aegisub builds
  that don't know about folding.
- Folds will be preserved by automation scripts that re-insert every
  line.
- Folds do not break when adding or deleting lines in a text editor or
  some other editor, as long as the lines involving folds aren't
  touched.
- In particular, merging changes using tools like git will not break
  folds.
- Copy/pasting folds also keeps the folds to some extent. This is
  impossible to solve in full generality, but simple cases like
  cut/pasting a folded section somewhere else work, as long as the file
  isn't saved in between.
- This will give automation scripts full access to folding without
  needing to set up any additional API functions.
2023-01-02 02:40:19 +01:00
arch1t3cht 3b02a199f0 vapoursynth: Fix default argument for color range
Unlike the other arguments for the resize function, "range_in" does not
use the same format as in the frame props. A frame prop _Range=1 means
limited, while an argument range_in=1 means full range.
2023-01-02 02:13:04 +01:00
arch1t3cht abe2a81c99 folding: Fix crash when clicking fold column header 2022-12-11 18:53:36 +01:00
arch1t3cht 6d83aa9101 Update CI actions versions 2022-12-01 21:36:09 +01:00
arch1t3cht 74d75a568e ffmpeg wrap: pin version 2022-11-30 22:58:08 +01:00
arch1t3cht 3b7cb30e1f Raise size limit of dummy video in config dialog
This is to facilitate some tricks with tracing rendered subtitles in
programs like GIMP with higher accuracy. Use at your own risk.
2022-11-30 22:35:27 +01:00
arch1t3cht cba8d3644f Remove "Video Panning" option
It's probably stable enough at this point, and hiding it behind an
option just creates more confusion than it prevents.
2022-11-17 17:29:18 +01:00
arch1t3cht b3b4b96238 Fix HDD audio cache provider when channels > 1 2022-11-15 18:31:19 +01:00
arch1t3cht c0edbb2710 Fix syntax highlighting with empty clip 2022-11-09 09:36:45 +01:00
arch1t3cht c8ff1bc960 Clear column width cache after updating grid style
Fixes arch1t3cht/Aegisub#11
2022-11-08 00:49:42 +01:00
arch1t3cht fca902b0a1 CI-Build 2022-11-04 2022-11-04 00:48:42 +01:00
arch1t3cht bd4e79fdf9 Merge branch 'vector_clip_actions' into feature 2022-11-04 00:46:15 +01:00
arch1t3cht b1a9867f16 Visual perspective tool: First functioning version 2022-11-04 00:45:32 +01:00
arch1t3cht 277d1e15cd CI-Build 2022-11-02 2022-11-03 00:03:36 +01:00
arch1t3cht 9d4a67b523 Merge branches 'info', 'video_panning_option', 'fixes', 'misc', 'vapoursynth' and 'wangqr_gui' into feature 2022-11-03 00:03:23 +01:00
arch1t3cht 7ddfef7517 Add syntax highlighting for drawings and vector clips
The highlighting distinguishes drawing commands from coordinates, and
colors x and y coordinates in different colors to make coordinates
easier to visually parse. Furthermore, in cubic Bezier curves, it
underlines the coordinates which corresponds to endpoints of the curves.
2022-11-02 23:58:01 +01:00
arch1t3cht b7f3e19e00 vapoursynth: Don't update script colorspace if colorspace unknown
Aegisub will automatically override the YCbCr Matrix field of the
current file's Script Properties with the video's reported color space.
The FFMS2 provider guesses a color space for all videos, but we don't
do this for Vapoursynth. Thus, we now disable this overriding whenever
the colorspace isn't known.
2022-11-02 23:51:15 +01:00
arch1t3cht a3b131a312 vapoursynth: Reset locale after initializing
On Windows, Python changes the application's locale upon being called,
which will break wxwidgets, causing various assertion error dialogs or
even crashes (for example when interacting with any sort of float edit
control). Saving the locale and restoring it afterwards seems to be
the only really possible way to remedy this.
2022-11-02 23:51:10 +01:00
arch1t3cht 399042e9e9 Revert "fix"
This was a test commit I never meant to push...

This reverts commit cc9d13d21a.
2022-11-02 23:48:59 +01:00
arch1t3cht 4edd619229 README: Typo fix 2022-11-02 23:08:36 +01:00
arch1t3cht 28db5d31ce video zoom: Fix crash on windows when making detached video too small 2022-11-02 23:07:55 +01:00
arch1t3cht 6cc22750c1 Revert "video zoom: Fix crash on windows when making detached video too small"
This reverts commit b38493ee68.
2022-11-02 23:07:03 +01:00
arch1t3cht 2ee6f6e904 Fix overscan mask being half as thick as it should be
The percent values used for the overscan masks follow the BBC's
guidelines, as in
https://en.wikipedia.org/wiki/Overscan#Overscan_amounts .
However, these measure the per-side width as opposed to the total
percentage of width/height being cut off. Thus, they should not be
divided by two when drawing the mask.
2022-11-02 21:57:57 +01:00
arch1t3cht 04ccc15fd4 Fix overscan mask with DPI scaling 2022-11-02 21:57:57 +01:00
arch1t3cht a0d381019f README: wangqr_gui and some general info 2022-11-02 19:50:25 +01:00
arch1t3cht 245cc68afa Fix FrameAtTime computation for CFR
The new formula is just the inverse function of the CFR part of
the TimeAtFrame function.

To see how the previous implementation was faulty, see either the added
tests, or
- In Aegisub, open a dummy video with a frame rate of 23.976
- Make a subtitle event with start time 04:44.41
- Double-click the line to (supposedly) seek to its first frame
- This will seek one frame earlier than it should, and the event will
  not be displayed on the resulting frame.
2022-11-02 02:19:38 +01:00
arch1t3cht 3583e57ddc vapoursynth: use exact fraction for frame rate 2022-11-02 02:18:52 +01:00
arch1t3cht 962295cf1e vapoursynth: Fix offset in audio block's first frame 2022-11-02 02:18:52 +01:00
arch1t3cht a5aa4eca29 vapoursynth: Properly pass through script errors 2022-11-02 02:18:52 +01:00
arch1t3cht 231706239f CI-Build 2022-10-11 2022-10-11 19:09:43 +02:00
arch1t3cht 2bcf0c7555 Merge branch 'video_panning_option' into feature 2022-10-11 18:55:11 +02:00
arch1t3cht b38493ee68 video zoom: Fix crash on windows when making detached video too small 2022-10-11 18:54:55 +02:00
arch1t3cht 0e89f32cfb video zoom: Fix detached video with DPI scaling 2022-10-11 18:31:46 +02:00
arch1t3cht 17831ca0f4 video zoom: Fix visual tools with DPI scaling 2022-10-11 15:15:40 +02:00
arch1t3cht b8b85eb580 Merge branch 'wangqr_gui' into feature 2022-10-10 01:43:27 +02:00
IbarakiKasen 049c1c08d1 Fix wxFlexGridSizer flex grow
Fix wangqr/Aegisub#143
2022-10-10 01:17:35 +02:00
wangqr e69c4e9a86 Expand all widgets in SubsEditBox to get a consistent height 2022-10-10 01:17:35 +02:00
wangqr 53cc316e6f Expand layer SpinCtrl a little
to compensate wxMac bug with GetSizeFromText
2022-10-10 01:17:35 +02:00
wangqr d55922d3cf Don't shrink the size of layer SpinCtrl on GTK3 2022-10-10 01:17:35 +02:00
wangqr 7fe4382d38 Remove hardcoded height of the slider
Before this the slider is only partially displayed
2022-10-10 01:17:35 +02:00
wangqr ed15252d69 Add workaround for wrong initial wxTextCtrl size in about dialog
See https://trac.wxwidgets.org/ticket/18507

Fix wangqr/Aegisub#19
2022-10-10 01:17:35 +02:00
wangqr af7cbb7730 Set the height of sub box to the same as secondary_editor
The secondary_editor is a wxTextCtrl, whose height is calculated from 2 rows of text. Using this height gives better consistency on screens with different DPIs, instead of using hard coded value like 50px
2022-10-10 01:17:35 +02:00
wangqr 0e0e04c943 Set the height of sub box back to 50px
Revert the change made in ad15c53fb1.
As a temporary solution for wangqr/Aegisub#4.
2022-10-10 01:17:35 +02:00
wangqr 6cb1a49943 Fix High DPI issue on GTK
* Use icon size in the config
2022-10-10 01:17:35 +02:00
wangqr 5f3757525a Add DPI awareness
* Removed most hard coded wxSize
* Sub edit box now have DPI aware icons

Co-authored-by: sepro <4618135+seproDev@users.noreply.github.com>
2022-10-10 01:17:34 +02:00
sepro e2ef1eb77f windows: enable DPI awareness in manifest 2022-10-10 01:17:34 +02:00
arch1t3cht cc9d13d21a fix 2022-10-10 01:17:34 +02:00
sepro 1469f1499b meson: apply custom manifest on windows
Co-authored-by: arch1t3cht <arch1t3cht@gmail.com>
2022-10-09 01:30:39 +02:00
arch1t3cht 2f31bfc565 CI-Build 2022-09-27 2022-09-27 23:50:14 +02:00
arch1t3cht ccc5f44a5f Merge branches 'info', 'bugfixes', 'workarounds', 'fixes', 'folding', 'bestsource', 'avisynth' and 'vapoursynth' into feature 2022-09-27 23:37:18 +02:00
arch1t3cht 40a9344d44 vapoursynth: Check if file exists before creating provider
Since FileNotFound exceptions don't abort the provider search, opening
an invalid path would show errors such as "vapoursynth not found" when
VapourSynth wasn't installed, even if VapourSynth wasn't selected as the
default video provider.
2022-09-27 23:17:54 +02:00
arch1t3cht febce3ecdc vapoursynth: Add configurable default script
This default script will be executed to load any file whose file name
extension is not .py or .vpy .

The gui code for setting the default script is still a bit wonky as it
doesn't fit the rest of the preferences pages nicely, but it works for
now.
2022-09-27 23:14:30 +02:00
arch1t3cht fe77a1a0b8 avisynth: Check if file exists before creating provider
Since FileNotFound exceptions don't abort the provider search, opening
an invalid path would show errors such as "avisynth not found" when
Avisynth wasn't installed, even if Avisynth wasn't selected as the video
provider.
2022-09-27 22:59:01 +02:00
arch1t3cht 961b3dfbee README: workarounds branch 2022-09-27 22:40:04 +02:00
arch1t3cht 22fb4c6e8c Move luabins back to vendor
Workaround for TypesettingTools/Aegisub#162
2022-09-27 16:54:15 +02:00
arch1t3cht 38efde92e3 folding: Fix selections jumping around 2022-09-14 11:31:50 +02:00
arch1t3cht a394aefd1a Fix crash when cancelling automation scripts
When cancelling an automation macro from the progress dialog, the dialog
throws a UserCancelException. If the macro still runs to the end
afterwards (instead of calling aegisub.cancel or causing an exception),
the two return values are left on the stack. This causes assertion errors
due to check_stack when those are enabled.
2022-09-13 22:41:18 +02:00
arch1t3cht 7ea1d650a9 bestsource: Fixes to fps and colorspace conversion
Some of these got lost in the process before.
For now, default to 709 if the colorspace is unkown. More detailed
colorspace guessing can be added in the future.
2022-08-29 11:11:05 +02:00
arch1t3cht 3fedc88641 Include strings.rc as resource file on Windows
This was included here:
6f546951b4/build/Aegisub/Aegisub.vcxproj.filters (L1094)
in the MSVC build.
2022-08-28 01:38:41 +02:00
arch1t3cht fb7f4bdd9a installer: Bump VCRedist to 17 (2015 - 2022)
The windows-latest platform in the CI already uses VS2022, so let's bump
the VCRedist to match.
2022-08-28 00:36:51 +02:00
arch1t3cht 7721ae689f Fix Avisynth paths for portable build
Also apply the change in 75db50b to the portable build.
The .mo files, on the other hand, already work as they are.
2022-08-26 15:17:59 +02:00
arch1t3cht 0dddddf96b CI-Build 2022-08-23 2022-08-23 20:21:29 +02:00
arch1t3cht bb16cdf7fe Merge branches 'folding', 'misc' and 'bestsource' into feature 2022-08-23 20:16:55 +02:00
arch1t3cht 9ea7808a30 bestsource: Mark video provider as slow
Looks like this wasn't clear enough, so let's make it clear to users
that BestVideoSource should only be used if absolutely necessary.
2022-08-23 20:13:45 +02:00
arch1t3cht 6b43e643cb Merge branch 'wangqr_time_video' into feature 2022-08-23 19:59:24 +02:00
arch1t3cht c7c874acc4 Add commands to reload audio or video
This is mostly useful for reloading Avisyth or VapourSynth scripts.
2022-08-23 19:53:40 +02:00
arch1t3cht b2fbc84335 AlignToVideo: Reexport the new icon files
Some metadata of these files was triggering the assertion errors in #6 .
Reexporting the icons using ffmpeg fixed this.

Fixes #6 .
2022-08-23 19:30:41 +02:00
arch1t3cht c8d4df1355 Add option to sort subtitles by text 2022-08-23 16:11:23 +02:00
arch1t3cht 9b920c7892 folding: Always write fold data to file 2022-08-23 15:55:26 +02:00
arch1t3cht ec23330b09 CI-Build 2022-08-22 2022-08-23 04:54:35 +02:00
arch1t3cht 2e78b9cfde Merge branch 'video_panning_option' into feature 2022-08-23 04:51:41 +02:00
arch1t3cht 98d476102e video zoom: Fix aspect ratio forcing
Do this by partially reverting the changes to UpdateSize in favor of
just multiplying by videoZoomValue *after* setting all the window sizes.
2022-08-23 04:48:33 +02:00
arch1t3cht 1d1a1d2ad7 CI-Build 2022-08-22 2022-08-22 02:26:38 +02:00
arch1t3cht 1dbd3b3cc7 Merge branches 'fixes' and 'ffmpeg_build' into feature 2022-08-22 02:26:03 +02:00
arch1t3cht 77cc1a6b22 Patch ffmpeg wrap to compile with simd extensions
This is very hacky and only intended to get these extensions working on
the Windows CI builds.
2022-08-22 02:25:25 +02:00
arch1t3cht 5a0bfdd775 Remove unnecessary flags in SelectedChoices dialog
These alignment flags would cause an assertion error
"Horizontal alignment flags are ignored in horizontal sizers"
when opening the dialog (mainly when importing styles from another
script).
As the assertion error says, the flags are ignored anyway, so they're
safe to remove.
2022-08-21 02:31:33 +02:00
arch1t3cht 7f7f5c8385 Merge branch 'misc' into feature 2022-08-19 21:18:48 +02:00
arch1t3cht 732c5c7654 Copy subitles: Fix wxBitmap usage
UseAlpha turned out to be unnecessary and doesn't even exist in some
wxWidgets ports.
2022-08-19 21:17:29 +02:00
arch1t3cht b52d1d0973 CI-Build 2022-08-19 v2 2022-08-19 02:35:05 +02:00
arch1t3cht 3b8cc6deb1 Merge branches 'misc', 'xa2-ds' and 'info' into feature 2022-08-19 02:31:59 +02:00
arch1t3cht 918c1e23a3 README: misc branch and compile instructions 2022-08-19 02:28:27 +02:00
arch1t3cht aadf6b32b9 Add option to copy or save subtitles with transparent background 2022-08-19 01:46:19 +02:00
arch1t3cht 819d90e9b0 Stereo playback on Linux audio players
After the audio provider rework, adjust the audio players to not
use the int16 mono downmixed audio unless necessary. Furthermore,
the pulseaudio-based player now controls the volume directly through
pulseaudio instead of by modifying the buffer. This also reduces latency
when changing the volume.

The entire set of GetAudio functions is quite messy now. After wangqr's
audio rework, it was split into GetAudio and GetInt16MonoAudio
functions, but now volume scaling is also necessary. Really, this should
go back to a type constructor based system with audio players being
allowed to choose what properties out of mono / 16 bytes / int samples /
volume they need.
2022-08-18 22:48:40 +02:00
arch1t3cht 34d339c187 CI-Build 2022-08-18 2022-08-18 18:12:06 +02:00
arch1t3cht 8169f0c6dc Merge branch 'xa2-ds' into feature 2022-08-18 18:10:26 +02:00
arch1t3cht 144860eb59 Remove format assertion after audio rework 2022-08-18 18:09:32 +02:00
arch1t3cht 00ee2b1ab8 CI-Build 2022-08-16 v2 2022-08-17 03:12:56 +02:00
arch1t3cht 50fb12d433 Merge branches 'fixes' and 'info' into feature 2022-08-17 03:09:39 +02:00
arch1t3cht 1e958cd1a1 Typo fix 2022-08-17 02:59:15 +02:00
arch1t3cht b697ad6ca0 Remove access checks in windows fs operations
These were giving false negatives on samba shares, which broke the font
collector. Windows also recommends to not use access checks in these
cases, and instead just see if the operations succeeds or not.
2022-08-17 02:54:09 +02:00
arch1t3cht 860a090de8 CI-Build 2022-08-16 2022-08-16 21:10:03 +02:00
arch1t3cht 3e5b985c7b Merge branch 'info' into feature 2022-08-16 21:04:46 +02:00
arch1t3cht e7e87f5584 Merge branch 'xa2-ds' into feature 2022-08-16 21:04:44 +02:00
arch1t3cht 0b8f5ad8fa XAudio PR: Revert some changes and fix on linux
Mostly synchronizing with the updates made to the ffmpeg audio provider
and removing the CMakeLists.txt
2022-08-16 21:03:59 +02:00
arch1t3cht afbd626e40 README: New audio+video interfaces 2022-08-16 20:54:49 +02:00
arch1t3cht 17d827c88a Merge branch 'misc_dc' into feature 2022-08-16 19:59:42 +02:00
arch1t3cht 6cdf360e76 Add downmix option on OSX
This fixes wangqr's commit dabd9f that adds an option to enable or
disable downmixing
2022-08-16 19:58:11 +02:00
arch1t3cht 24ac0647ac Merge branch 'vapoursynth' into feature 2022-08-16 19:57:22 +02:00
arch1t3cht ff43f3d601 vapoursynth: Add audio source 2022-08-16 19:22:54 +02:00
arch1t3cht 4a5a212f35 bestsource: Switch to GetPackedAudio()
After vapoursynth/bestsource#7 , BestSource now has a function to
get the packed audio instead, so we just use that directly.
2022-08-16 19:22:54 +02:00
arch1t3cht 3f298bf03a Add vapoursynth video provider 2022-08-16 19:22:54 +02:00
arch1t3cht 6af0b41f47 bestsource: Add audio provider 2022-08-16 19:22:54 +02:00
arch1t3cht 70fd08aabe bestsource: Expose some options 2022-08-16 19:22:54 +02:00
arch1t3cht e41647c78c bestsource: Detect audio and color space 2022-08-16 19:22:54 +02:00
arch1t3cht 4c6e3527d4 bestsource: Switch to manual sws_scale
This was to work with ffmpeg 4.4, but it also saves one frame copy
operation. It does, however, lose the slice threading.
2022-08-16 19:22:54 +02:00
arch1t3cht e4261faf73 bestsource: Add jannson wrap 2022-08-16 19:22:54 +02:00
arch1t3cht 33b9a6e395 Add bestsource video provider
Co-authored-by: Asada shinon <joshwoo71@gmail.com>
2022-08-16 19:22:54 +02:00
arch1t3cht 44888d9b70 Merge branch 'color_picker_fix2' into feature 2022-08-16 16:09:13 +02:00
arch1t3cht 25bd040494 Fix color picker option 2022-08-16 16:07:25 +02:00
arch1t3cht 64ecc490be Merge branch 'fixes' into feature 2022-08-16 15:51:37 +02:00
arch1t3cht fb24bcda6d Delete CMakeLists
The file was mistakenly added when pulling wangqr's "time to video"
feature. I fixed the branch, but instead of merging the whole branch
again, let's just delete the file here.
2022-08-15 21:23:42 +02:00
wangqr d75e49653a Fix syntax error in e2ea84541f 2022-08-15 21:01:09 +02:00
Oneric 57841a0a34 AlignToVideo: Handle tolerance = 0 correctly
Checking if the diff is '>' instead of '>=' will always fail if
tolerance=0, even if the colours are identical. This will cause the line
to get a startime greter than its end time, which is not desireable.

Rounding errors and limits of floating type precision might still affect
the comparison. An additional sanity check before calculation is added
to ensure the selected position and colour match within tolerance.
This allows us to refactor the search code to never check the starting
frame and guanrantees valid timings with start<end even with
rounding errors.
2022-08-15 21:01:09 +02:00
Oneric f1cfd480c4 AlignToVideo: Improve rgb->lab precision 2022-08-15 21:01:09 +02:00
Oneric 2300988613 dialog_align: Remove point at the end of the tooltips
No other tooltips end with points, even if they're a sentence.These
ones aren't even sentences.
Also updates all *.po files accordingly, with an hacked in
POT-Creation-Date due to issues with make_pot.sh.
2022-08-15 21:01:09 +02:00
wangqr b2ba1feb28 Submit "align to video" on double click
Fix wangqr/Aegisub#34
2022-08-15 21:01:09 +02:00
wangqr 60dcc35830 Remove the trailing period in help text of time/align
Fix wangqr/Aegisub#7
2022-08-15 21:01:09 +02:00
wangqr 2b3df72c75 Fix missing config option for Align on macOS 2022-08-15 21:01:09 +02:00
wangqr 37380658bb Fix errors in AlignToVideo
* Call TimeAtFrame with correct parameter
* Fix syntax error
2022-08-15 21:01:09 +02:00
Charlie Jiang cc8e857849 Merge remote-tracking branch 'origind-dev/master'
Add align to video function
2022-08-15 21:01:09 +02:00
arch1t3cht 9ebe154964 Fix width of lua float edits
Float edits with a spinner are by default sized to fit their full
min-max range of possible values, so this makes min and max default to 0
and 100 (like it'd done internally in wx) instead of -DOUBLE_MAX and
DOUBLE_MAX.

Note that this does change the behavior of lua dialogs, but does not
contradict existing documentation or specification. It should only
affect scripts who either disobey the specification by specifying only
one value out of max/min, or scripts displaying these large float edits
by specifing a step, but no max or min.
2022-08-14 16:24:50 +02:00
arch1t3cht 3fb2eacf95 CI-Build 2022-08-13 2022-08-13 23:04:01 +02:00
arch1t3cht 53466be0ca Merge branch 'avisynth' into feature 2022-08-13 23:03:33 +02:00
arch1t3cht ad443dd118 avisynth: Properly destruct the IScriptEnvironment
Starting with AVISYNTH_INTERFACE_VERSION=5, this is how script
environments should be deleted. The previous code was causing crashes
when unloading AviSynth in certain scenarios, such as when failing to
open a file due to an incorrect path.
2022-08-13 22:53:58 +02:00
arch1t3cht 95bd0edbdd Merge branch 'lua_api' into feature 2022-08-13 21:00:21 +02:00
arch1t3cht 0376c56a95 Lua docs: Typo fix 2022-08-13 21:00:13 +02:00
arch1t3cht ce1b3a0158 avisynth: Validate downmix option
Because... let's maybe not let users make Aegisub call arbitrary
symbols in avisynth.dll/so just by editing the config.json.
2022-08-13 01:06:24 +02:00
arch1t3cht fe285678a3 avisynth: Allow compilation on Linux
Co-authored-by: wangqr <wangqr@wangqr.tk>
2022-08-13 01:06:24 +02:00
Ristellise 6906b6e5d7 [Shinon] Enable Directsound2 player to use more than 1 channel audio.
- DS2 Player has a similar structure to XAudio, so I don't see any reason why not to enable 1 channel+ audio.
 - Haven't tried with 5.1 channel sources but I believe it should be the same as 2 channel (As in, Directsound will downmix the audio to 2 channel)
 - Moved the volume setting to using the player directly and from some quick audio tests, -10000 is too soft. I tried with -5000 instead which seems to be alright.
2022-08-11 12:28:35 +08:00
Ristellise 994e50048a Finish up XAudio with a round of bugfixes 2022-08-10 21:23:56 +08:00
Ristellise fd28458ed8 Implement wangqr Audio Changes:
- To allow for XAudio2 to work properly, we need to rework how does provider work since they only are used to be able to take in mono audio.
 - Other providers have been dumbed down to accept single channel audio since originally aegisub only accepted 1 channel audio.
 - meson.build has been modified to accommodate for xaudio, as we currently don't accept redistributable forms of xaudio, we need to work around the WinNT version.
 - There has been 1 more fix to res.rc to allow for compiling on non tagged releases.
2022-08-10 21:09:41 +08:00
Ristellise 3dfea0c315 Add XAudio2 2022-08-10 16:31:02 +08:00
arch1t3cht 80e8ad0103 Merge branch 'folding' into feature 2022-08-08 16:40:24 +02:00
arch1t3cht 663112ba03 folding: Don't drop folds starting at the very first line 2022-08-08 16:38:43 +02:00
arch1t3cht 31271676b3 CI-Build 2022-08-07 2022-08-08 02:21:40 +02:00
arch1t3cht 17d50d49ef Merge branch 'lua_api' into feature 2022-08-08 02:19:40 +02:00
wangqr e2a49b3313 Avisynth audio provider: add option to allow no downmix 2022-08-08 01:38:20 +02:00
wangqr 691ab820b8 Handle exceptions from AviSynthWrapper ctor 2022-08-08 01:38:01 +02:00
sepro 8e1cc6228e Add automation function to get frame 2022-08-08 01:30:15 +02:00
arch1t3cht bde149fd30 lua: Function returning if the file is modified 2022-08-08 01:00:08 +02:00
arch1t3cht 4e8c02d38f CI-Build 2022-08-01 2022-08-01 23:24:30 +02:00
arch1t3cht e8493975e2 Merge branch 'lua_api' into feature 2022-08-01 23:24:16 +02:00
arch1t3cht 64ba5b1e36 Merge branch 'info' into feature 2022-08-01 22:15:34 +02:00
arch1t3cht 8dbf6a4fb7 README: lua_api, wangqr_time_video, and the zlib linker bug 2022-08-01 22:15:22 +02:00
arch1t3cht 69d79ac0cf Merge branch 'wangqr_time_video' into feature 2022-08-01 22:09:29 +02:00
arch1t3cht 84d90ce80b Merge branch 'video_panning_option' into feature 2022-08-01 21:56:24 +02:00
wangqr c232ef6bb6 Fix syntax error in e2ea84541f 2022-08-01 21:43:26 +02:00
Oneric 61c6303a14 AlignToVideo: Handle tolerance = 0 correctly
Checking if the diff is '>' instead of '>=' will always fail if
tolerance=0, even if the colours are identical. This will cause the line
to get a startime greter than its end time, which is not desireable.

Rounding errors and limits of floating type precision might still affect
the comparison. An additional sanity check before calculation is added
to ensure the selected position and colour match within tolerance.
This allows us to refactor the search code to never check the starting
frame and guanrantees valid timings with start<end even with
rounding errors.
2022-08-01 21:43:26 +02:00
Oneric 7a729532b4 AlignToVideo: Improve rgb->lab precision 2022-08-01 21:43:26 +02:00
Oneric e098342f54 dialog_align: Remove point at the end of the tooltips
No other tooltips end with points, even if they're a sentence.These
ones aren't even sentences.
Also updates all *.po files accordingly, with an hacked in
POT-Creation-Date due to issues with make_pot.sh.
2022-08-01 21:43:24 +02:00
wangqr b5e7bbc5ad Submit "align to video" on double click
Fix wangqr/Aegisub#34
2022-08-01 21:43:17 +02:00
wangqr 42248eabad Remove the trailing period in help text of time/align
Fix wangqr/Aegisub#7
2022-08-01 21:43:17 +02:00
wangqr 68166c7581 Fix missing config option for Align on macOS 2022-08-01 21:43:17 +02:00
wangqr c71e140c41 Fix errors in AlignToVideo
* Call TimeAtFrame with correct parameter
* Fix syntax error
2022-08-01 21:43:17 +02:00
Charlie Jiang 3dcab8b9bd Merge remote-tracking branch 'origind-dev/master'
Add align to video function
2022-08-01 21:43:15 +02:00
arch1t3cht c07a648270 Add options to commit or reverse video zoom 2022-08-01 21:21:24 +02:00
arch1t3cht fa33b07c7f Add option toggling behaviour of Ctrl+Zoom 2022-08-01 21:00:53 +02:00
arch1t3cht feab1a5663 Add documentation for text selection api 2022-08-01 20:48:15 +02:00
arch1t3cht b61f8946c1 Merge branch 'folding' into feature 2022-08-01 20:06:24 +02:00
arch1t3cht fd1a92d627 Folding: Fix default hotkeys 2022-08-01 20:05:55 +02:00
arch1t3cht c0fa794e45 Lua: Functions to set text selection and cursor
Putting this logic for delaying changes in the TextSelectionController
isn't the cleanest, but all attempts at saving this state somewhere in
the Lua API instead turned out even worse. Also, the logic for inverted
selections probably does belong in there.
2022-08-01 19:56:53 +02:00
arch1t3cht 4a928674cd Merge branch 'folding' into feature 2022-07-31 21:31:44 +02:00
arch1t3cht 7c92e6bbd6 Folding: Dont error on missing _foldinfo 2022-07-31 21:31:34 +02:00
arch1t3cht d0c8ffd1af CI-Build 2022-07-30 2022-07-30 13:47:56 +02:00
arch1t3cht 4b9c50a702 Merge branch 'vector_clip_actions' into feature 2022-07-30 13:46:04 +02:00
arch1t3cht af009c4ce7 Make line tool the default vector clip tool again 2022-07-30 13:45:49 +02:00
arch1t3cht 32dda63971 Merge branch 'misc_dc' into feature 2022-07-30 13:07:42 +02:00
arch1t3cht a6af313cf2 Merge branch 'info' into feature 2022-07-30 13:06:58 +02:00
arch1t3cht a37f84215d Typo fix 2022-07-30 03:36:33 +02:00
arch1t3cht 9177943c76 Update README: ffms2 and misc_dc 2022-07-30 01:51:46 +02:00
Asada shinon ba3a3dc80a Parse mixin lines as template lines 2022-07-30 00:57:15 +02:00
arch1t3cht aeaab655eb Fix segfault when stereo downmixing 2022-07-30 00:45:49 +02:00
Ristellise f06e42a82e [Shinon] Change Mono Downmixing to Stereo Downmixing 2022-07-29 23:21:55 +02:00
wangqr dabd9f699f Add option to downmix FFMS audio
When enabled, restore FFMS to old behavior, downmixing auduo to S16 mono. This can reduce cache usage.

Fix wangqr/Aegisub#31
2022-07-29 23:18:56 +02:00
Asada shinon d0efa0494a Save vector clips with two decimal places
Co-authored-by: arch1t3cht <arch1t3cht@gmail.com>
2022-07-29 21:50:10 +02:00
Asada shinon 58a6cf4793 Added new hotkey command to reload current font provider. 2022-07-29 20:51:37 +02:00
arch1t3cht 32fc7abd2d Explain the problems with adding new forks 2022-07-27 17:06:32 +02:00
arch1t3cht 58d6fa456e CI-Build 2022-07-27 2022-07-27 15:28:12 +02:00
arch1t3cht 11b5a80618 Merge branch 'folding' into feature 2022-07-27 15:27:04 +02:00
arch1t3cht ca462c2a24 Merge branch 'info' into feature 2022-07-27 15:26:37 +02:00
arch1t3cht 0926f84d0e Merge branch 'spectrum-frequency-mapping' into feature 2022-07-27 15:26:36 +02:00
arch1t3cht 8ca6ec1884 Merge branches 'vector_clip_actions' and 'color_picker_fix2' into feature 2022-07-27 15:26:34 +02:00
arch1t3cht 9cc3fe9e71 Merge branches 'video_panning_option', 'bugfixes' and 'avisynth' into feature 2022-07-27 15:26:33 +02:00
arch1t3cht e65e55833c Fix compilation for older C++ 2022-07-27 15:23:47 +02:00
arch1t3cht 818fcd51f4 Folding: Toggling folds by clicking the indicator 2022-07-27 15:23:47 +02:00
arch1t3cht 2176954aee Folding: Pass fold data through Lua
This way, automation scripts won't nuke the fold data on any lines they
modify.
This is done as userdata for now, so scripts that don't know what
they're doing don't break the folds even further. If scripts get more
access to folds, it should be with a safer and simpler API.
2022-07-27 15:23:47 +02:00
arch1t3cht 56cc1a6873 Add line folding
Line folds are managed using metadata of AssDialogue elements, and
saved in the project properties. They only affect the appearance of the
subtitle grid, and have no impact on other line operations.
2022-07-27 15:23:47 +02:00
arch1t3cht 1772dd17ae Use std::this_thread everywhere
The previous logic wouldn't compile on linux using clang.

With the meson build requiring c++14, there's no need for platform
specific code. Really, the entire agi::util::sleep_for function could be
removed entirely, but I'll keep the patch minimal for now.
2022-07-27 15:20:03 +02:00
arch1t3cht 4f9b23ab1f Readme 2022-07-27 02:00:23 +02:00
arch1t3cht 2234068202 Allow vertical audio zoom with Shift+Mouse Wheel 2022-07-26 23:38:27 +02:00
arch1t3cht ff46b860a2 Add option toggling behaviour of Ctrl+Zoom 2022-07-20 14:38:31 +02:00
arch1t3cht 7ea9b95fe0 Clean up pointer code
The previous one was remnant of scrapped code.
2022-07-19 02:45:04 +02:00
arch1t3cht 2c296afdb8 Add option to restrict color picker to window 2022-07-19 02:41:50 +02:00
arch1t3cht 238dbb386d Restrict color picker's screenshot to window
This fixes issues like Aegisub/Aegisub#264 with taking
screenshots on linux, especially with wxgtk3 or wayland.
2022-07-18 20:21:04 +02:00
arch1t3cht eb07b3f9b8 Show hotkeys for vector clip tools
Move the function to generate toolbar tooltips listing hotkeys to the
command class, so it can be used outside of toolbar.cpp .
2022-07-12 16:54:04 +02:00
arch1t3cht 7da4493a0f Use command metadata for vector clip toolbar
This cuts down on the data duplication for the command names and help
texts, at the expense of copying a bit of code from the general toolbar
logic.

Modifying the toolbar Populate() function to also add additional buttons
appears very hard or impossible.
2022-07-12 16:49:22 +02:00
arch1t3cht 10d233d3e2 Add bindable commands for visual vector clip tools 2022-07-12 16:49:22 +02:00
arch1t3cht 77af0c40dc Use public enum for visual clip tool modes 2022-07-12 16:49:22 +02:00
arch1t3cht 86354050f3 meson: Use depend_files for files in respack manifest 2022-07-10 23:00:52 +02:00
arch1t3cht ba0db4da70 Also add Video Pan option on OSX 2022-07-10 22:57:55 +02:00
arch1t3cht 21591b3e88 meson: Use depend_files for files in respack manifest 2022-07-07 10:33:36 +02:00
Eli Schwartz 8336c7d97c meson: use best practices lookup for iconv support
Meson 0.60.0 adds support for an "iconv" dependency that always does the
right thing for you, so that you don't need to think about it. It also
has some side advantages:
- you can do dependency fallback, and --force-fallback-for=iconv works
- it logs one line, not two, and that is "dependency found? yes or no"

Since Aegisub doesn't mandate the use of such new versions of Meson, we
cannot assume the dependency works. Instead, adapt to the version of
Meson being used: on new enough versions of Meson, use the new
dependency, but on older versions of Meson, use the pre-existing logic,
which isn't as nice but has been producing correct results so far.
2022-07-07 00:08:24 -07:00
arch1t3cht e644227e95 avisynth: Remove option to allow ancient versions
- This refers to AviSynth < 2.5.6, which is from before 2005
- With the current setup (using GetAVSLinkage, these versions wouldn't
  work anyway)
- The latest AviSynthPlus is bundled with the installer anyway
2022-07-05 02:01:35 +02:00
arch1t3cht 635503affe meson: Add files in manifest as respack.py input
This makes meson detect changes to files like default_config.json
and rebuild libresrc.cpp when necessary.
2022-07-05 01:35:08 +02:00
arch1t3cht e240a5fdc2 avisynth: Update headers and fix playback
- Build the latest AviSynth headers using CMake, as proposed in #134
- Add and initialize AVS_Linkage to fix video loading

Video and audio playback now works in most cases, but still crashes for
some files.
2022-07-05 01:12:10 +02:00
arch1t3cht 142605cf41 meson: Add files in manifest as respack.py input
This makes meson detect changes to files like default_config.json
and rebuild libresrc.cpp when necessary.
2022-07-04 22:22:01 +02:00
arch1t3cht fdcb0ee75f meson: Fix compliation with avisynth enabled
Still crashes when loading a video.
2022-07-03 17:49:46 +02:00
arch1t3cht 5bde34ff3e macos: attempt to fix the installer build
Try and fix an issue when a symlink would link to a path with the same
basename, without actually having a mac system available to test.
2022-07-02 19:58:43 -07:00
arch1t3cht 2bf4f17e58 ci: Don't abort if one of the matrix runs fails 2022-07-02 19:58:43 -07:00
arch1t3cht cfd93ce81b meson: Use latest git version for ffms2
This is to include the fix for FFMS/ffms2#394 .
2022-07-02 19:58:43 -07:00
arch1t3cht 6e811ef6a7 Fix compile error on linux 2022-07-02 19:58:43 -07:00
arch1t3cht 9fef97a5bb installer: update paths to mo files
Meson's i18n module changed its output paths here:
487d45c1e5
2022-07-02 19:58:43 -07:00
arch1t3cht 75db50b6ed installer: update paths to Avisynth libaries
The folder structure of the release archives changed with
AviSynth+ 3.7.1.
2022-07-02 19:58:43 -07:00
TRAMBO 4776ca9dd1
Fix errors when automation scripts being loaded and os.execute not working (#156)
* fix errors when automation scripts being loaded and os.execute not working

* Update unicode-monkeypatch.lua
2022-06-08 08:36:49 -07:00
Oneric e5dee3fbe2 meson: bump ffmpeg wrap
meson-4.4 contains a fix regarding the prefix kwarg
with newer Meson versions not present in the 4.3 branch.
2022-06-08 01:10:11 -07:00
Oneric 85ce9663a6 Pass storage size to libass to fix rendering
Since ASS rendering depends on the storage size of the video libass
needs to know about it to render the subtitles correctly. If it isn't
told about the storage size libass uses the value from PlayRes{X,Y} as
a guess, but this isn't always correct.
With Aegisub currently always rendering at storage resolution
this ends up the same as the frame size.
2022-06-08 01:10:11 -07:00
Sodra 03ffce8a89 Fixing zoom when panning is off 2022-03-02 19:02:21 -08:00
Sodra bb5081189e Fix video panning option. Oops teehee ptep~ 2022-03-02 18:36:38 -08:00
Sodra b332181937 Added option to enable video panning 2022-03-02 18:24:17 -08:00
moex3 36f7e102e2 Revert "Add reset hotkey as Ctrl-R" / Not needed
This reverts commit 3d525d9938790211b02a31a16d716498957891fc.
The default hotkey is not required. People can just add a custom one
from the hotkey settings if they want this.
2022-03-02 15:02:02 -08:00
moex3 0b8586e90d Add reset hotkey as Ctrl-R
I'm not entirely sure, that this is how it's supposed to be added.
This requires editing the already existing hotkey.json file (shows path
in log, if it exists).
Should this also be added to hotkey.cpp?
2022-03-02 15:02:01 -08:00
moex3 14d078fb9f Fix a zooming bug on linux
The preview window would change in width, when the video was being zoomed.
Possibly, because on windows, zooming only calls UpdateSize once, but on
linux, it gets called multiple, like 8 times.
Rounding fixed it.
2022-03-02 15:02:01 -08:00
moex3 09ea0f54d3 Make zooming feel more linear
with a "good enough" implementation
2022-03-02 15:02:00 -08:00
moex3 db6297c8c3 Make zooming center around the cursor position 2022-03-02 15:01:59 -08:00
moex3 4f6836da9c Make video zoom different from preview window zoom 2022-03-02 15:01:59 -08:00
moex3 70ddf3c7f5 Respect min. zoom value when changing pan coords 2022-03-02 15:01:58 -08:00
moex3 d73dfe9c18 Change pan values with the zoom level changes 2022-03-02 15:01:58 -08:00
moex3 808ead65bf Fix crosshair drawing
I'm not sure about that scale_factor, i don't know how to test that
2022-03-02 15:01:57 -08:00
moex3 0ec0f20695 Fix mouse position bug when videoAr > displayAr
Crosshair drawing is broken when videoAr != displayAr
2022-03-02 15:01:56 -08:00
moex3 5f95f76671 Change tab to spaces 2022-03-02 15:01:55 -08:00
moex3 f3d796a3e3 Add menu item for resetting the video pan 2022-03-02 15:01:54 -08:00
moex3 e3949cdaa1 Add video panning 2022-03-02 15:01:48 -08:00
EleonoreMizo bfcd8a3e2c
Merge branch 'master' into spectrum-frequency-mapping 2021-11-29 22:27:26 +01:00
Oleg Oshmyan f21d8a3607 meson: use OpenAL.framework on macOS
It is not picked up by the existing dependency() check because its
version is unknown to Meson, which fails the version constraint.
Besides, dependency('openal') seems to try "openal.framework",
which may or may not work on case-sensitive file systems.
2021-11-10 20:12:21 -07:00
Oleg Oshmyan 1d01f8adc8 meson: allow unconstrained dependency version to be "unknown"
And allow for compound version constraints in the future.
2021-11-10 20:12:21 -07:00
Oleg Oshmyan 18503946d5 meson: don't check disabled dependencies at all
Don't search for the dependency and set up fallback
only to throw it away if the option is disabled.
This is a waste, and this gives the user the illusion
that the request to disable the feature was ignored.
2021-11-10 20:12:21 -07:00
woclass e58e4a9149
Fix Mac dmg build (#138)
* [mac/build] update build steps

* [macos] bundle app

* [macos] build dmg

* [ci] setup macOS CI

* [i18n] TODO: rm WX locale files

* [deps] set main branch to main

* Fix osx-fix-libs.py

Create symbolic links, to make libicu happy
Rewrite the script in python3, as python2 is deprecated

* Add write permission before install_name_tool when doing osx-bundle

Fix wangqr/Aegisub#39

* Handle @loader_path in libboost on macOS

See wangqr/Aegisub#39

* [tools/mac] use python3

* [ci/mac] install & using system deps

* [ci/win] don't build fribidi:docs

* [ci/mac]  trying openal-soft

* [ci/mac] use pulseaudio in CI

* [ci/win] only run aeg's test

* [ci/win] fix CI

* [ci/win] fix CI: not use dict `{}`

* [ci] run ci

* [ci/win] don't build docs

* [ci/win] remove args tail newline

* [ci/win] false->disabled

* Use md title format

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>

* Recover file permissions.

* [ci/win] disable fontconfig

Co-Authored-By: Ryan Lucia <ryan@luciaonline.net>

* [ci/win] disable libass:fontconfig

Co-authored-by: wangqr <wangqr@wangqr.tk>
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
2021-10-12 03:37:49 -04:00
woclass 0dffcec461
Fix meson warning (#126)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [test] Generate the test executable

run with `meson test`

* [test] add tools to remove test data files

`unset.bat FULL_PATH`

* [test] set to correct Error type

* [test] Set Source character sets to UTF-8 for MSVC

* [test] move test data files to build_root

* [meson/wxWidgets] fix warning: deprecated feature `cmake_options`

* [meson] fix warning:  msvc does not support C++11

* [meson/fribidi] add original meson.build file

* [meson/fribidi] merge pr-151

https://github.com/fribidi/fribidi/pull/151
"meson: add fribidi_static_cargs to extra_cflags"

* [meson/fribidi] fix DEPRECATION

"Library fribidi was passed to the "libraries" keyword argument of a previous call to generate() method instead of first positional argument."

* [git]  rm IDE dir

* [meson] remove old flags

* [meson] fixed in upstream
2021-05-24 09:47:34 -04:00
woclass 7e9c7d7aa0
Run tests (#125)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [test] Generate the test executable

run with `meson test`

* [test] add tools to remove test data files

`unset.bat FULL_PATH`

* [test] set to correct Error type

* [test] Set Source character sets to UTF-8 for MSVC

* [test] move test data files to build_root

* [git] remove IDE dir

* [git] ignore gtest subprojects

* [ci] run test in ci

* [meson/test] use more meaningful name

* [test] Add more comments and help msg
2021-05-23 23:33:33 -04:00
Myaamori dfb0a1ca99 meson: don't use deprecated get_pkgconfig_variable 2021-05-23 18:37:36 -04:00
Myaamori 2c927bac32 meson: make --force-fallback-for=luajit work
This option makes the dependency() call resolve to the subproject
which breaks the Lua 5.2 compatibility check.
This change just ignores the result of the dependency() call
if it resolves to the subproject and then re-fetches it
with a subproject() call later.
Alternatively we could explicitly handle the case where dependency()
resolves to the subproject, but that's just extra code for no
observable difference in behaviour.
2021-05-23 18:37:36 -04:00
clr134 28e3e75c44
Polish translation corrections (#130) 2021-05-23 17:33:04 -04:00
Vardë 3c17671ad0
Updates French translation (#121)
* Updates French translation

* Missing spelling mistake

* Additional adjustments

* Improvements (#1)

Co-authored-by: Vardë <Ichunjo@users.noreply.github.com>

Co-authored-by: anne-o-pixel <81879599+anne-o-pixel@users.noreply.github.com>
2021-05-23 04:54:46 -04:00
woclass 52c8fef28c
Generate Win portable.zip (#124)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [win_installer\portable] add new target `meson win-portable`

+ meson install copy `include/unicode-monkeypatch.lua`

* [win_installer\portable] make aegisub-portable-64.zip

+ remove WinRAR deps

* [win_installer\portable] using powershell

* [git] upload portable.zip

* [win_installer\portable] rm freetype

* [repo] remove Optional dependencies: WinRAR

* [repo] Update README.md, add cmd to gen zip file

* [repo] use recommended build command

* [git] remove IDE dir

* [ci] add Windows portable installer build step
2021-05-23 04:37:54 -04:00
Yi-Jyun Pan 761194025f meson: luajit: allow to build in ARM64
Meson thought that a ARM64 cpu is aarch64, while
luajit only provided a file for "arm64". Since there is
no difference but the name between aarch64 and arm64, I
choose to bind aarch64 -> arm64.

Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
2021-05-23 04:32:54 -04:00
woclass 62c3acb666
Fix localization file generation on Windows (#119)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [git] remove IDE dir

* [git] remove unused subprojects
2021-05-23 02:06:10 -04:00
Ryan Lucia aeba7a390e Re-enable MacOS CI 2021-05-22 02:48:27 -04:00
Ryan Lucia a856030078 Switch to new boost tarball hosting 2021-05-21 21:52:18 -04:00
Myaamori 84ac716972 meson: add uchardet port
Meson port instead of using CMake as I ran into issues with the
src directory (where uchardet.h is located) not being appended
to the include path, and on Windows I ran into a Meson issue
where a -D macro definition was being interpreted as a filename.
In the end a Meson port seemed simpler than working out the CMake
issues, as the CMakeLists.txt files were straightforward and easy
to port.

Note that because of the directory structure of the uchardet source
I had to change the include directive from uchardet/uchardet.h
to just uchardet.h. This is actually more in line with the uchardet
pkg-config file, which appends /usr/include/uchardet to the include path.
2021-05-21 21:09:36 -04:00
Myaamori c43e4fba3c meson: add Hunspell port
This moves the visibility logic (HUNSPELL_STATIC/BUILDING_LIBHUNSPELL)
to the build system. Only relevant on Windows.
2021-05-21 21:09:36 -04:00
Myaamori 0f95589d0a meson: Fix Windows artifacts 2021-05-21 21:07:22 -04:00
Myaamori b00f5dd58e meson: add option to specify wxWidgets version 2021-04-09 18:00:01 -04:00
Ryan 696a732840 Add new unicode script to installer 2021-03-27 14:56:04 -04:00
Ryan 7def61d46f Update README for Windows 2021-03-27 14:55:52 -04:00
Myaamori 3dfc553880 Fix faux bold logic in font collector for Fontconfig
Based on libass's logic (a requested weight of over 150 more than
the matching font).
2021-03-27 12:38:50 -04:00
Myaamori 4b2cd7f170 Convert OpenType weight to Fontconfig weight in font collector
Fixes #108
2021-03-27 12:38:50 -04:00
Ryan 7a27ee7823 meson: add -DLUAJIT_UNWIND_EXTERNAL for MacOS/Linux 2021-03-27 12:34:18 -04:00
Ryan 9d1b28f5a7 Delete luajit patch files 2021-03-27 12:34:18 -04:00
Ryan 51494a07d9 lua: run unicode-monkeypatch on Windows when loading scripts 2021-03-27 12:34:18 -04:00
Ryan 8394f1adca Monkeypatch script fixes 2021-03-27 12:34:18 -04:00
Ryan e929e4a75c meson: copy monkeypatch script 2021-03-27 12:34:18 -04:00
Ryan 4648e8cc5b meson: add new luajit string buffer files 2021-03-27 12:34:18 -04:00
Ryan Lucia b7f6ac42e4 Add lua monkeypatch for Unicode support on Windows 2021-03-27 12:34:18 -04:00
Ryan Lucia 84beba20cb meson: fix luajit 64-bit builds
Upstream defines ENDIAN_LE or ENDIAN_BE always, so assume little endian. x86_64 defaulting to x86 seems to just be a mistake
2021-03-27 12:34:18 -04:00
Ryan ef64307ba1 Switch to upstream LuaJIT
This does not yet handle the patching, but should build without issue
2021-03-27 12:34:18 -04:00
Ryan 48c3acd3aa actions: disable MacOS
The LTO change broke this somehow, but disable until I can investigate why
2021-03-27 09:31:10 -04:00
Ryan f5122a3927 meson: copy automation files to build directory
This enables running Moonscript on Windows builds without relying on system files
2021-03-27 09:30:21 -04:00
Ryan d32ef75cba meson: move executable to the root directory 2021-03-27 09:29:37 -04:00
Ryan 1246534b7b Move AddSeparator to VisualTool::SetToolbar
Co-authored-by: wangqr <wangqr@wangqr.tk>
2021-03-27 08:09:11 -04:00
Ryan Lucia c218db6f34 meson: disable LTO by default 2021-03-06 14:57:27 -05:00
petzku 19429b0f6e Fix negative margin handling (closes #104)
Previously, margins were clamped to 0..9999, but negative margins are
well supported by most renderers.  In addition, previously lua
automations automations were able to produce these negative margin
values, and they would be saved correctly. However, re-opening the file
would clamp the values, and they could not be edited in the edit box.

This commit changes the clamping to be -9999..99999, and allows entering
(and editing) negative values in all relevant fields. In addition, this
makes the subtitle edit box margin fields take 5 characters instead of 4
to accommodate negative numbers up to 9999 (also the reason for raising
the upper bound).
2021-03-06 14:29:18 -05:00
Ryan Lucia 8fa0fa352b meson: generate osx-bundle.sed 2021-02-27 21:11:56 -05:00
Ryan Lucia dc3ffa30af actions: stylistic cleanup 2021-02-27 20:21:29 -05:00
Ryan Lucia 43751546f4 spectrum view: allow 32-bit wxBitmap
Required on MacOS
2021-02-22 14:29:14 -05:00
Ryan Lucia 2abb098bd1 meson: improve iconv detection 2021-02-22 14:26:03 -05:00
Myaamori c6f4ea45aa Let search field in Hotkeys menu expand horizontally
On Linux with wx 3.1 it was too small to use by default
2021-01-31 19:34:47 -05:00
Myaamori ca7501c7ed Remove unused alignment flags for combo boxes in resampler
Causes an assertion error with wx 3.1
2021-01-31 19:34:47 -05:00
Ryan Lucia c32c612dc3 meson: set dataroot correctly for osx bundle 2021-01-30 16:22:05 -05:00
Ryan 1fd574f556 win_installer: don't include arch in file name 2021-01-30 12:20:24 -05:00
Ryan b72f02b9f2 meson: reorder nasm download to work with global args 2021-01-30 12:11:34 -05:00
Ryan 248785d7ad meson: apply manifest on windows 2021-01-30 12:02:34 -05:00
Ryan 36b75b827d meson: fix warnings, cleanup 2021-01-30 12:02:18 -05:00
Ryan 73ad926880 meson: define CSRI_NO_EXPORT earlier in setup 2021-01-30 09:12:13 -05:00
Ryan 2cb759a6e2 win_installer: set directory correctly after DepCtrl checkout 2021-01-30 09:11:34 -05:00
Ryan e186fa4627 meson: disable CSRI on non-windows for now 2021-01-30 09:04:22 -05:00
Ryan 1ac52a24d6 meson: disable gdi_fontselect for now
This one continues to be controversial, so for now the plan will be to report issues upstream that come up as a result of this being removed
2021-01-30 08:58:45 -05:00
Ryan 7d9feca578 meson: add CSRI support 2021-01-30 08:57:39 -05:00
Ryan d8c348e897 meson: standardized config defines to set integer 1 2021-01-30 08:56:01 -05:00
Ryan f3958288ac libresrc: put new wxBitmap constructor behind wx version check
Based off https://github.com/Aegisub/Aegisub/pull/175
2021-01-30 07:29:45 -05:00
Ryan 8d8ea166df lua: remove usage of luaL_reg in favor of luaL_Reg
The former was deprecated with 5.1, and removed entirely in later versions and in LuaJIT
2021-01-30 07:25:06 -05:00
Ryan 7640576cc9 meson: use conf object for defines where appropriate 2021-01-30 07:25:03 -05:00
Ryan 8acc8be2ba win_installer: checkout DepCtrl 0.6.3 2021-01-17 09:53:19 -05:00
Ryan 73c54cef99 win_installer: use plain aegisub.exe everywhere 2021-01-17 09:53:01 -05:00
Ryan 1981f4db3e win_installer: fix vc redist name in run section to match source 2021-01-17 09:30:26 -05:00
Ryan bec44eaab8 meson: define P_LOCALE 2021-01-16 13:15:05 -05:00
Ryan b8d1864a07 aegisub: ifdef wxBitmap constructor to scale on MacOS only
Quick fix to unblock the build; need better HiDPI handling across the board
2021-01-16 13:01:51 -05:00
Myaamori b42da504a0
Save unexpanded path in font collector (#79)
Fixes #78
2021-01-16 06:13:37 -05:00
Ryan 35b2ca5532 win_installer: fix paths for Avisynth+ dlls
3.7.0 changed the layout, so just match the new one
2021-01-16 06:02:32 -05:00
Ryan 1384123e2d iconv wrapper: allocate a smaller buffer on the stack 2021-01-16 05:31:08 -05:00
Ryan 8b8f4a3925 meson: bump minimum ffms2 version to 2.22
It's been out for 6 years, so this should be fairly safe. Also fix a build error that somehow snuck in during the merge
2021-01-16 05:31:08 -05:00
Ryan 6660594f64 Update URLs to point at the main repo 2021-01-16 05:31:08 -05:00
Ryan 308ef6cbb0 meson: promote dirent wrap 2021-01-16 05:30:59 -05:00
Ryan d583744b69 Merge in work from TypesettingTools fork 2021-01-16 02:12:31 -05:00
Ryan a2da1616c0 meson: set minimum win version to 7
I think setting it at 8 was accidental? This matches the installer, so we should be consistent throughout
2021-01-16 01:26:19 -05:00
Ryan 25a62f4f12 libass_gdi_fontselect: don't redefine NOMINMAX
It's now defined in the build system itself
2021-01-16 01:24:19 -05:00
Ryan 417ba4ff2d actions: change branch to master 2021-01-10 03:14:12 -05:00
Ryan 2211b7a0a5 README: update for macOS with meson 2021-01-10 03:14:12 -05:00
Ryan 4b1d23e6be actions: add separate debug/release lanes
No debug on Windows because the container isn't powerful enough
2021-01-10 03:14:12 -05:00
Ryan 7f46b687e1 meson: remove libass dirent patch
Handled more properly in libass itself
2021-01-10 03:14:12 -05:00
Ryan 1a5c19c4d7 actions: force LFS 1.8.0 on macOS 2021-01-10 03:14:12 -05:00
Ryan 28bc329678 actions: apt-get update on ubuntu 2021-01-10 03:14:12 -05:00
Ryan a77f7d48df meson: update to reflect fixes in dependencies 2021-01-10 03:14:12 -05:00
Ryan Lucia bc079922c0 actions: Enable OSX CI 2021-01-10 03:14:12 -05:00
Ryan Lucia b51463a5f5 meson: Fix build on OSX 2021-01-10 03:14:12 -05:00
Ryan Lucia c487dd2bdb Parially revert fffb138b81
I haven't checked whether reverting this breaks IME input, and if it doesn't what changed on wx's end. However, this is the commit that uses private symbols, and so reverting it lets us build against upstream wx. Even if this is a loss in functionality, for now it's fine.
2021-01-10 03:14:12 -05:00
Ryan f240c01cbc meson: only manually set _DEBUG on non-windows 2021-01-10 03:14:12 -05:00
Ryan 56581fbce3 actions: invoke win-installer correctly, install innosetup on ci 2021-01-10 03:14:12 -05:00
Ryan 32729800df actions: build as release for Windows CI 2021-01-10 03:14:12 -05:00
Ryan 9211b7b632 win-installer: fix warnings 2021-01-10 03:14:12 -05:00
Ryan 8cf4100c87 meson: fix resource file compilation
This enables video to load correctly in Windows builds
2021-01-10 03:14:12 -05:00
Ryan 106c753782 actions: support installer generation on CI 2021-01-10 03:14:12 -05:00
Ryan a3ec466ff6 meson: fix Windows installer generation
This includes some miscellaneous cleanup to the installer files as well
2021-01-10 03:14:12 -05:00
Ryan 72edb88982 meson: add Avisynth option, compile libass_gdi_fontselect
Sadly, building with Avisynth is still broken.
2021-01-10 03:14:12 -05:00
Ryan Lucia 44fdeb361f actions: upload artifacts 2021-01-10 03:14:12 -05:00
Ryan Lucia 194521e777 meson: set wx subproject buildtype, remove d_vscrt hack 2021-01-10 03:14:12 -05:00
Ryan Lucia 47f7aa879d README: update Windows section to reflect the switch to Meson 2021-01-10 03:14:12 -05:00
Ryan Lucia 89c788a4b3 autotools: remove remaining makefiles 2021-01-10 03:14:12 -05:00
Ryan Lucia c5111b492b actions: force fallback for harfbuzz 2021-01-10 03:14:12 -05:00
Ryan Lucia 4dc65303a1 actions: force default_library=static for freetype 2021-01-10 03:14:12 -05:00
Ryan Lucia cd0eee968f meson: minor subproject cleanup, update gitignore 2021-01-10 03:14:12 -05:00
Ryan Lucia f91f6f0743 meson: pass png=enable to freetype2 to work around bug
See https://savannah.nongnu.org/bugs/?59458
2021-01-10 03:14:12 -05:00
Ryan Lucia 18ccc1d7f0 meson: disable building ffmpeg tests 2021-01-10 03:14:12 -05:00
Ryan Lucia 8a09d00081 actions: enable MSVC 2021-01-10 03:14:12 -05:00
Ryan Lucia 3f1c315dfe meson: force zlib subproject for freetype 2021-01-10 03:14:12 -05:00
Myaamori abec21f4e0 meson: fix wx subproject on Linux 2021-01-10 03:14:12 -05:00
Myaamori aecf09a64d Use wxSizer::RepositionChildren instead of RecalcSizes on wx 3.1.3+ 2021-01-10 03:14:12 -05:00
Myaamori 93b2794c85 Correct wxStyledTextCtrl::StartStyling for wx 3.1 2021-01-10 03:14:12 -05:00
Myaamori 6ff1729303 meson: update/promote libass dependency wraps 2021-01-10 03:14:12 -05:00
Myaamori 8bb8b34fe7 meson: set _DEBUG on all platforms for debug builds 2021-01-10 03:14:12 -05:00
Myaamori 0ea6d36fca meson: don't generate git_version.xml and don't regenerate git_version.h on windows
Also fix incorrect use of return outside function. Fixes #80
2021-01-10 03:14:12 -05:00
Ryan Lucia 17303d3846 actions: add initial ubuntu workflow 2021-01-10 03:14:12 -05:00
Ryan Lucia 7d4c99db5a meson: switch to upstream freetype 2021-01-10 03:14:12 -05:00
Ryan Lucia daa4cc8bbc meson: search for 'system' module with system boost
System was made header-only by 1.74, so we can't check for it in the submodule, but when linking with older system boosts we need to make sure it gets linked in
2021-01-10 03:14:12 -05:00
Ryan Lucia dc3aaa5df0 meson: allow boost fallback under msvc 2021-01-10 03:14:12 -05:00
Ryan Lucia 454c79c8cc Remove travis file 2021-01-10 03:14:12 -05:00
Ryan Lucia 60431862fa meson: allow wx fallback on all platforms 2021-01-10 03:14:12 -05:00
Ryan Lucia 7d0028799f meson: remove old wx_path and icu_path hacks 2021-01-10 03:14:12 -05:00
Ryan Lucia e393509515 meson: default to buildtype debugoptimized 2021-01-10 03:14:12 -05:00
Ryan Lucia e3826cb17e meson: initial attempt to generate Aegisub.app on macOS 2021-01-10 03:14:12 -05:00
Ryan Lucia 8f42f11b11 Convert osx-fix-libs.py to py3 2021-01-10 03:14:12 -05:00
Ryan Lucia 9fd62692af win-installer: auto-populate current year for copyright 2021-01-10 03:14:12 -05:00
Ryan Lucia 2e898c461a win-installer: remove fragment_opengl 2021-01-10 03:14:12 -05:00
Ryan Lucia 0d45c67dcf meson: move all .desktop file work into linux conditional 2021-01-10 03:14:12 -05:00
Ryan Lucia 44af99a163 meson: move luabins to subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia e087728021 gitignore: mass purge, add .DS_STORE 2021-01-10 03:14:12 -05:00
Ryan Lucia 5ec5271eb5 meson: fix source file inclusion in libaegisub on osx 2021-01-10 03:14:12 -05:00
Myaamori 3147f303c8 meson: save git_version.xml to meson build directory in version.ps1 2021-01-10 03:14:12 -05:00
Myaamori d80b8d6de0 meson: use meson-pr branch for libass 2021-01-10 03:14:12 -05:00
Myaamori fa2c35a058 remove build, .nuget, Aegisub.sln 2021-01-10 03:14:12 -05:00
Myaamori 0e51dba59b meson: remove DUALNUM check from LuaJIT 2021-01-10 03:14:12 -05:00
Myaamori 5dff6c9234 update .gitignore 2021-01-10 03:14:12 -05:00
Myaamori 65fc7c0f30 meson: ignore second argument in version.ps1
for compatibility with bf2dca2e4c0
2021-01-10 03:14:12 -05:00
Myaamori b1c2fbdb19 meson: add nasm wrap for Windows 2021-01-10 03:14:12 -05:00
Myaamori 2510ef25c2 meson: patch libass with stub dirent.h
this should probably be handled by the libass meson port at some point
2021-01-10 03:14:12 -05:00
Myaamori 03de8929d4 meson: pin wx version and fix dependencies 2021-01-10 03:14:12 -05:00
Myaamori 441daf5aeb meson: use check_header to check for iconv
iconv is not a standalone library on Linux, so find_library is pointless
2021-01-10 03:14:12 -05:00
Myaamori 0b7e244232 meson: define fallbacks for optional dependencies 2021-01-10 03:14:12 -05:00
Myaamori 51b8248ac8 meson: create git_version.h in build directory in version.sh 2021-01-10 03:14:12 -05:00
Myaamori bb02d3bc5e meson: don't build with C11
C11 breaks the LuaJIT build
2021-01-10 03:14:12 -05:00
Myaamori f9f8b6c4d3 meson: add FFMS2 wrap 2021-01-10 03:14:12 -05:00
Myaamori ce791773f6 meson: add Boost wrap 2021-01-10 03:14:12 -05:00
Myaamori d6ee06eb54 meson: add ICU wrap 2021-01-10 03:14:12 -05:00
Myaamori 64df2d61c7 meson: have iconv subproject override iconv dependency 2021-01-10 03:14:12 -05:00
Myaamori 130339a3d6 meson: set correct flags when compiling LuaJIT on Windows 2021-01-10 03:14:12 -05:00
Myaamori 1fc019447a meson: enable Lua 5.2 compat for both native and host builds 2021-01-10 03:14:12 -05:00
Myaamori f6b74331da meson: update zlib wrapper 2021-01-10 03:14:12 -05:00
line0 2e613f5476 meson: flag aegisub as a GUI app 2021-01-10 03:14:12 -05:00
line0 bfdcbdefad meson: add missing link dependencies on windows 2021-01-10 03:14:12 -05:00
line0 88e24db733 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
2021-01-10 03:14:12 -05:00
line0 37230683fb utils: work around missing C++11 char16_t overload in wx string conversion 2021-01-10 03:14:12 -05:00
line0 f039395003 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
2021-01-10 03:14:12 -05:00
line0 18fe7918f3 meson: make boost honor the global default_library option 2021-01-10 03:14:12 -05:00
line0 23e86bf074 meson: build libiconv as static library 2021-01-10 03:14:12 -05:00
line0 e56ab6c784 meson: define BOOST_USE_WINDOWS_H on Windows
fixes symbol redefinition errors in VS 2019
2021-01-10 03:14:12 -05:00
line0 609d38e605 meson: update dependencies
switch back to official harfbuzz upstream now that meson has landed
2021-01-10 03:14:12 -05:00
line0 b6c0f2d544 meson: don't build fontconfig file lister on windows 2021-01-10 03:14:12 -05:00
line0 b8e2cf83fd 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
2021-01-10 03:14:12 -05:00
FichteFoll a91c4f70c3 Use i18n.merge_file for real
Requires gettext 0.19, which is available on all major linux dists.

Not compatible with autotools chain! (For now, anyway.)
2021-01-10 03:14:12 -05:00
FichteFoll 6343d36169 Add commented i18n.merge_file version
Using that makes use of gettext (and msgfmt) rather than intltool,
which is the proper way but requires a more recent gettext version and
I'm not comfortable adding that dependency for now.

Specifically, it would require updating the autotools chain as well
as the template files are incompatible.

See https://wiki.gnome.org/MigratingFromIntltoolToGettext for more info.
2021-01-10 03:14:12 -05:00
FichteFoll 650954f28e Move language specifications to LINGUAS file
This is required when using i18n.merge_file.
2021-01-10 03:14:12 -05:00
FichteFoll 443dd5146d Properly build aegisub.desktop 2021-01-10 03:14:12 -05:00
Ryan Lucia 9708ca8e5e Add virtual destructor to SignalBase
Quashes a frequent warning
2021-01-10 03:14:12 -05:00
Ryan Lucia 2cb6d5b814 meson: fix up OSX and non-MSVC detection 2021-01-10 03:14:12 -05:00
FichteFoll 9fdf490cff Use git rev-list to determine revision number 2021-01-10 03:14:12 -05:00
FichteFoll 8704f83743 Fix git_version.h generation 2021-01-10 03:14:12 -05:00
Ryan Lucia 5e14a9265b meson: attempt to wrangle dependencies 2021-01-10 03:14:12 -05:00
Ryan Lucia 7befd5e759 gitignore: mass cleaning 2021-01-10 03:14:12 -05:00
Ryan Lucia a853f7c4b0 Windows installer: always include vc+ runtime 2021-01-10 03:14:12 -05:00
Ryan Lucia 57e4f788d0 meson: update subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia 13711128fa meson: remove 'build_' prefix from option 2021-01-10 03:14:12 -05:00
Ryan Lucia 1599858c92 Make version.sh executable 2021-01-10 03:14:12 -05:00
Ryan Lucia 3b2d770d74 Fix PCH usage
Hopefully this time in a way that doesn't ruin life for Unix folks!
2021-01-10 03:14:12 -05:00
Ryan Lucia d2d3168904 meson: allow additional include directories for manually located deps 2021-01-10 03:14:12 -05:00
Ryan Lucia df396b67b2 meson: add Windows-specific project args 2021-01-10 03:14:12 -05:00
Ryan Lucia 2eaf9b0062 meson: fix option name lookup in build file 2021-01-10 03:14:12 -05:00
Ryan Lucia 9e284660b1 meson: add DirectSound detection 2021-01-10 03:14:12 -05:00
Ryan Lucia 9aeaceb6e7 meson: add basic libiconv subproject functionality 2021-01-10 03:14:12 -05:00
Ryan Lucia 631dad170f meson: fix luajit compiler args 2021-01-10 03:14:12 -05:00
Ryan Lucia d3c709a2ea Move iconv to subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia 608d0c9c15 Move hunspell to subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia 609f5be032 Move CSRI to subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia 6ca1d6463a Remove submodules 2021-01-10 03:14:12 -05:00
Ryan Lucia 42bfc53a77 meson: bump c++ version 2021-01-10 03:14:12 -05:00
Ryan Lucia 0be226aa6c meson: add wrapfiles for essential subprojects 2021-01-10 03:14:12 -05:00
Ryan Lucia 506bac365d meson: move luajit to subprojects directory 2021-01-10 03:14:12 -05:00
Ryan Lucia a9dfafd37a meson: fix syntax errors in packages/meson.build 2021-01-10 03:14:12 -05:00
Ryan Lucia 1a133cd567 meson: move version scripts to tools directory 2021-01-10 03:14:12 -05:00
Ryan Lucia c965171663 Remove autotools build system 2021-01-10 03:14:12 -05:00
line0 936b39303d PowerShell version script: work correctly from any cwd; do not error out when version.h doesn't already exist; adjust git_version.h and git_version.xml paths for meson build system 2021-01-10 03:14:12 -05:00
Ryan Lucia 613cef19a0 meson: rename option for optional dependencies 2021-01-10 03:14:12 -05:00
Ryan Lucia 7596a7c5e4 meson: remove 'static' option 2021-01-10 03:14:12 -05:00
Ryan Lucia f361138a4d Switch from combo option to feature where appropriate
Also remove the extra space before colons :)
2021-01-10 03:14:12 -05:00
Ryan Lucia 3b7724aab4 Fix spacing around colons in luajit subproject files 2021-01-10 03:14:12 -05:00
Ryan Lucia ddd6a4f289 Move version generation scripts up a level 2021-01-10 03:14:12 -05:00
Ryan Lucia 83fcab0775 Switch to newer path concatenation syntax 2021-01-10 03:14:12 -05:00
Ryan Lucia cde5778283 Make spacing around colons consistent 2021-01-10 03:14:12 -05:00
Ryan Lucia 68f5843117 Don't require fontconfig on windows 2021-01-10 03:14:12 -05:00
Ryan Lucia 02a2c12cee Enable version.ps1 on windows
version.ps1 itself still has to be modified to support out-of-tree builds
2021-01-10 03:14:12 -05:00
Ryan Lucia c564df55aa Bump Meson version
Build file was using a now-deprecated property
2021-01-10 03:14:12 -05:00
line0 2f13615342 add powershell version of build/version.sh 2021-01-10 03:14:12 -05:00
FichteFoll a6076ed580 Always build git_version.sh 2021-01-10 03:14:12 -05:00
Martin Herkt 2e3a78383f Fix fdo icon install path 2021-01-10 03:14:12 -05:00
Martin Herkt ca3802e82a Meson: respack.lua → respack.py; works out-of-tree 2021-01-10 03:14:12 -05:00
Martin Herkt 48af346e94 Meson: add gettext i18n 2021-01-10 03:14:12 -05:00
Martin Herkt 97b4dfb7f4 Meson: add install rules 2021-01-10 03:14:12 -05:00
Martin Herkt 8905921a2d Initial port of the build system to Meson
Still some TODOs left. Probably only works on Linux for now.
2021-01-10 03:14:12 -05:00
EleonoreMizo f9c8a7f6aa Spectrum display improvement
– Selection of different frequency mappings for the spectrum display,
from linear (current default) to logarithmic.
– Field added in the preference page to select the frequency mapping
– New preference key to remember this setting:
Audio/Renderer/Spectrum/FreqCurve
– Consistent display with high sampling rates (> 48 kHz)
– Fixed time shift with high quality settings
2020-12-15 20:11:58 +01:00
Andrew Neth d0bab1212c
Look for both system fonts and user fonts on Windows (#64)
* Look for both system fonts and user fonts on Windows

* Move repeated font registry reading code to separate function

* Pass the files vector to read_fonts_from_key as a reference

* Allocate a larger filename buffer when necessary while reading fonts from registry
2020-02-08 15:41:03 -05:00
Thomas Goyne 6f546951b4 Use appropriate DPI images in more places on macOS 2019-10-06 12:46:06 -07:00
Thomas Goyne 85f711fccc Adjust the index of the drag subtool button for the addition of the separator 2019-09-28 18:13:44 -07:00
Thomas Goyne 5da48d0f30 Don't call Realize() before setting the toolbar 2019-09-28 18:13:44 -07:00
Thomas Goyne 6ca879938d Always feed the entire file into uchardet when detection is needed
uchardet will report that a file is "ascii" if the first page has no bytes
>127, so we need to actually look at the entire file in case the first higher
byte is later in the file.
2019-09-28 18:13:44 -07:00
Thomas Goyne 8d17a0e88a Assume that files which start with a unicode BOM are valid files of that type 2019-09-28 18:13:44 -07:00
wangqr e1a8ab1c10 fix: infinite recursion when loading video
In 888be0607f some changes have been made to video_display.cpp which causes infinite recursion: the video display enables video/tool/cross tool when running VideoDisplay::Render() for the first time.
But when setting up the tool, the video box size is changed, which calls VideoDisplay::Render() again. So we need to set the tool BEFORE it modifies the box by "AddSeparator".

Fix wangqr/Aegisub#21

Co-authored-by: Charlie Jiang <cqjjjzr@126.com>
2019-09-28 21:13:01 -04:00
wangqr 6d4dd60ce8 Handle video flip and rotate metadata in ffms2
Fix Aegisub/Aegisub#149
2019-09-22 17:41:05 -07:00
wangqr 57ee580c0f Fix lagi_thes unit tests on Windows
The thes file was using \r\n line ends, and \r was not stripped, causing the encoding string has a \r at its end.
Use binary mode and always use \n as line ends.
2019-09-22 17:41:05 -07:00
wangqr 336745cdb2 In Properties dialog, create the button first
So the foucus goes to the OK button on init. This will let wxWidgets correctly handle the initial position of text in wxTextCtrl

Fix wangqr/Aegisub#6
2019-09-22 17:41:02 -07:00
wangqr 10f7458b5f Fix PCM provider bugs 2019-09-22 17:41:02 -07:00
wangqr 1122c0880a Fix failing unit tests on Windows 2019-09-22 17:41:02 -07:00
wangqr dd59fc988a Fix gtest setup.bat on Windows 2019-09-22 17:41:02 -07:00
wangqr 896011f535 Search user fonts in GDI font lister
Windows now allow user install fonts without admin. List HKCU for those fonts.
https://blogs.windows.com/windowsexperience/2018/06/27/announcing-windows-10-insider-preview-build-17704/
2019-09-22 17:41:02 -07:00
wangqr 7a1756a26f In tagless_find_helper only tag before start should be ignored
The search result is irrelevant to which tag we should ignore

Fix wangqr/Aegisub#17
2019-09-22 17:41:02 -07:00
wangqr 6732179a8a Fix wrong memset usage 2019-09-22 17:41:02 -07:00
davste0816 72d0457bc8 Fix Move Down button in Export dialog 2019-09-22 17:41:02 -07:00
davste0816 073c06d812 Add .webm to extension list, add .eac3 as an audio format
Co-Authored-By: FichteFoll <fichtefoll2@googlemail.com>
2019-09-22 17:41:02 -07:00
davste0816 06798f2caf Recognize .opus as an audio format, .h264 .hevc as video formats 2019-09-22 17:41:02 -07:00
wangqr b3f0cb8953 Don't internally reset the selection after collected fonts
This creates an inconsistency between UI and internal mode.

Fix wangqr/Aegisub#10
2019-09-22 17:41:02 -07:00
wangqr 9ed381f498 Remove extra semicolon 2019-09-22 17:41:02 -07:00
wangqr b429645006 visualSubToolBar now use same style as other toolbars
Previously visualSubToolBar has boarder while visualToolBar does not. So the width of the toolbar will change when toggling visualSubToolBar.

Now we remove the boarder so they have the same width. A separator is added at the top of visualToolBar instead to provide visual cue.

Fix wangqr/Aegisub#11
2019-09-22 17:41:02 -07:00
wangqr 0a2a07ba7e Use absolute distance when scrolling audio box with mouse wheel
Instead of 1/3 screen per tick. So the distance of scroll no longer depends on the width of the audio box. Besides, 1/3 is feels to far for me when the audio box is wide.

See wangqr/Aegisub#5
2019-09-22 17:41:02 -07:00
wangqr 716c2eae0d Remove the usage of dummy wxTimerEvent 2019-09-22 17:40:47 -07:00
wangqr bb5090ac3a Detect EBML magic number to skip encoding detection for MKV
MKV loads slow after f733297499
2019-09-22 17:40:46 -07:00
wangqr d7139c40c0 Remove call to wxSizer::CalcMin and wxSizer::RecalcSizes
As they are used internally by Layout and should not be called
directly.
2019-09-22 17:39:43 -07:00
wangqr 73ca9ace1c Change the default fontsize and the list of resolutions
The default fontsize is changed to 48. While it still looks small
on the default 720p video, it is actually bigger than
    20 / 480 * 720 = 30

Here 720p is the default video resolution after 837d5a41d7. Some
common resolutions are also added to the preset list.

Fix wangqr/Aegisub#3
2019-09-22 17:39:43 -07:00
wangqr 38046516b3 Fix FFT first sample location
Fix wangqr/Aegisub#1
2019-09-22 17:39:43 -07:00
wangqr 698c41afef Fix iconv ConversionFailure on long path 2019-09-22 17:39:43 -07:00
Ryan Lucia 293673fef1 Divorce stored TPP lead-in/out values from config
There's no real reason to link these as far as I can tell, and plenty of
valid reasons not to
2019-09-22 17:39:43 -07:00
Ryan Lucia 2411617158 Properly ignore ASS whitespace characters in character counter 2019-09-22 17:39:43 -07:00
Ryan Lucia af5d34cc1d Add configuration options for colors in visual typesetting tools 2019-09-22 17:39:43 -07:00
Ryan Lucia 1ce72a6d6e Update default config to modern standards 2019-09-22 17:39:43 -07:00
Ryan Lucia ebea3905cc Use FFMS2 constant in place of magic number 2019-09-22 17:39:43 -07:00
Ryan Lucia 4f870f9c26 Ignore VS build files
Most files were moved to .vs directory with VS15
2019-09-22 17:39:43 -07:00
Ryan Lucia f2ca259a8b Pass 0 to FFMS_Init
The argument is no longer used, and the docs specify to pass a value of 0 to avoid confusion
2019-09-22 17:39:43 -07:00
Ryan Lucia 04a193de4d Point users at a functional bug tracker 2019-09-22 17:39:43 -07:00
Ryan Lucia 63d267d359 Fix line order when splitting after current frame 2019-09-22 17:39:43 -07:00
Ryan Lucia b2dd50e910 Use proper event for DoubleUpdater
Previously changes weren't recognized because the event bound was for integers
2019-09-22 17:39:43 -07:00
Ryan Lucia 66a3748f97 Remove dead forums link 2019-09-22 17:39:43 -07:00
Ryan Lucia bc649b6063 Make translation assistant skipping whitespace an explicit setting 2019-09-22 17:39:43 -07:00
Ryan Lucia 30286e7035 Remove Force BT.601 option and update color matrix guessing 2019-09-22 17:39:43 -07:00
Ryan Lucia d660f7f2b0 Add support for setting status bar text from Lua 2019-09-22 17:39:43 -07:00
wangqr d0c05fbcde Update about dialog 2019-09-22 17:39:43 -07:00
wangqr 17215edc31 Fix build warnings 2019-09-22 17:39:43 -07:00
wangqr faad82e1ec Fix overflow bound 2019-09-22 17:12:05 -07:00
wangqr 5d4973a5f6 Fix millisecond to centisecond convertion
Fix Aegisub/Aegisub#94
2019-09-22 17:12:05 -07:00
wangqr d89c1ce900 Change some text box size to make it looks better on HiDPI 2019-09-22 17:12:05 -07:00
Thomas Goyne 4897905287 Install autopoint on travis 2019-09-22 16:44:03 -07:00
darealshinji 7c43c757ce don't be too pedantic on the OpenAL checks 2019-09-22 19:35:40 -04:00
scx 547b17fc22 Fix crashing when picking language
Aegisub crashes immediately after selecting any language
from the end of the list (above the 100th position).
This is because it can support no more than 100 languages.
This patch extends this limit up to 1000 languages (locales).

Fixes #131
2019-09-22 19:34:23 -04:00
scx c3c446a8d6 Fixes for Boost 1.69.0 2019-09-22 19:33:36 -04:00
darealshinji 7094bd1e20 Add configure option to enable portable builds on Linux 2019-09-22 19:26:50 -04:00
Yakauleu Uladzislau 565b7cb86e Added Belarusian Localization 2019-09-22 19:23:39 -04:00
scx 0847acc53f Add missing AM_GNU_GETTEXT_VERSION macro
Bug: http://devel.aegisub.org/ticket/1914
2019-09-22 19:22:33 -04:00
scx 67d9fd9aa4 DataBlockCache: Fix crash in cache invalidation (#142)
The original version uses a reverse iterator,
whose .base() is invalid after KillMacroBlock() erases it.
2019-09-22 19:19:56 -04:00
scx cb0af6ca35 Fix crash on right click due to no spell checker
See: #131
2019-09-22 19:17:39 -04:00
scx 0418d0b5be Desktop file: make Keywords translatable 2019-09-22 19:16:23 -04:00
scx eeb3e17b73 Update desktop file
- Add Keywords
 - Add StartupWMClass
 - Update Categories
2019-09-22 19:16:23 -04:00
scx 7ea2c09afa make_pot.sh: Check presence of xmlstarlet and jq 2019-09-22 19:15:36 -04:00
scx c3a4a9122c Integrate AppData file with build system 2019-09-22 19:15:36 -04:00
scx 0a1b93860b Add AppData file template 2019-09-22 19:15:36 -04:00
wangqr 42552e5efb Correctly handle memory free using Lua GC
Instead of manually free. Otherwise return value of `search' may refer to invalid memory.
Fix Aegisub/Aegisub#99
2019-09-22 19:12:23 -04:00
wangqr 3782b906d7 Fix travis-ci build script 2019-09-22 19:12:23 -04:00
Thomas Goyne 2cb92a5f74 Bump _WIN32_WINNT to Vista 2018-11-23 09:22:18 -08:00
Thomas Goyne ebc76c8a11 Update ffmpeg and ffms2 2018-11-23 09:22:18 -08:00
Thomas Goyne 6afb851365 Update freetype2 2018-11-23 09:22:18 -08:00
bkbkb 83736b4866 Fix fribidi download link 2018-07-29 21:39:15 -07:00
Thomas Goyne 524c6114a8
Merge pull request #80 from jbeich/boost
Unbreak build against Boost 1.68
2018-07-09 15:06:51 -07:00
Jan Beich d8336d2fed Keep using std::distance after Boost 1.68
src/search_replace_engine.cpp:256:14: error: call to
      'distance' is ambiguous
                                count += distance(
                                         ^~~~~~~~
/usr/include/c++/v1/iterator:511:1: note: candidate function [with _InputIter =
      boost::u32regex_iterator<std::__1::__wrap_iter<const char *> >]
distance(_InputIter __first, _InputIter __last)
^
/usr/local/include/boost/iterator/distance.hpp:49:9: note: candidate function [with SinglePassIterator =
      boost::u32regex_iterator<std::__1::__wrap_iter<const char *> >]
        distance(SinglePassIterator first, SinglePassIterator last)
        ^
2018-07-09 20:17:59 +00:00
darealshinji ce658d0709 Update config.sub, config.guess, install-sh (#77) 2018-06-17 11:14:35 -07:00
1133 changed files with 236385 additions and 366313 deletions

234
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,234 @@
name: Meson CI
on:
push:
branches:
- master
- feature
- cibuilds
pull_request:
branches:
- master
- feature
workflow_dispatch:
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: Windows MSVC Release
os: windows-latest
msvc: true
buildtype: release
args: >-
-Ddefault_library=static
--force-fallback-for=zlib,harfbuzz,freetype2,fribidi,libpng
-Dfreetype2:harfbuzz=disabled
-Dharfbuzz:freetype=disabled
-Dharfbuzz:cairo=disabled
-Dharfbuzz:glib=disabled
-Dharfbuzz:gobject=disabled
-Dharfbuzz:tests=disabled
-Dharfbuzz:docs=disabled
-Dharfbuzz:icu=disabled
-Dfribidi:tests=false
-Dfribidi:docs=false
-Dlibass:fontconfig=disabled
-Davisynth=enabled
-Dbestsource=enabled
-Dvapoursynth=enabled
- name: Windows MSVC Release (wx master)
os: windows-latest
msvc: true
buildtype: release
args: >-
-Ddefault_library=static
--force-fallback-for=zlib,harfbuzz,freetype2,fribidi,libpng
-Dfreetype2:harfbuzz=disabled
-Dharfbuzz:freetype=disabled
-Dharfbuzz:cairo=disabled
-Dharfbuzz:glib=disabled
-Dharfbuzz:gobject=disabled
-Dharfbuzz:tests=disabled
-Dharfbuzz:docs=disabled
-Dharfbuzz:icu=disabled
-Dfribidi:tests=false
-Dfribidi:docs=false
-Dlibass:fontconfig=disabled
-Davisynth=enabled
-Dbestsource=enabled
-Dvapoursynth=enabled
-Dwx_version='3.3.0'
#- {
# name: Windows MinGW,
# os: windows-latest,
# msvc: false
#}
- {
name: Ubuntu Debug,
os: ubuntu-latest,
buildtype: debugoptimized,
args: ''
}
- {
name: Ubuntu Release,
os: ubuntu-latest,
buildtype: release,
args: ''
}
- name: Ubuntu AppImage
os: ubuntu-22.04
buildtype: release
appimage: true
# distro ffms is currently broken
args: >-
--prefix=/usr
-Dbuild_appimage=true
-Ddefault_library=static
--force-fallback-for=ffms2
-Davisynth=enabled
-Dbestsource=enabled
-Dvapoursynth=enabled
- {
name: macOS Release,
os: macos-12,
buildtype: release,
args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true -Dvapoursynth=enabled --force-fallback-for=ffms2
}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: '0'
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Setup Meson
run: |
python -m pip install --upgrade pip setuptools
pip install meson
- name: Setup MSVC
if: matrix.config.os == 'windows-latest' && matrix.config.msvc == true
uses: ilammy/msvc-dev-cmd@v1
- name: Install dependencies (Windows)
if: matrix.config.os == 'windows-latest'
run: |
choco install ninja innosetup
$moonscripturl = "https://github.com/leafo/moonscript/releases/download/win32-v0.5.0/moonscript-187bac54ee5a7450013e9c38e005a0e671b76f45.zip"
mkdir moonscript
Invoke-WebRequest -Uri $moonscripturl -OutFile ".\moonscript\moonscript.zip"
pushd moonscript
7z e moonscript.zip
Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
popd
$gettexturl = "https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-static-64.zip"
Invoke-WebRequest -Uri $gettexturl -OutFile ".\gettext.zip"
Expand-Archive ".\gettext.zip" -DestinationPath gettext
pushd gettext/bin
Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
popd
- name: Install dependencies (MacOS)
if: matrix.config.os == 'macos-12'
run: |
export HOMEBREW_NO_INSTALL_CLEANUP=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
# Skip brew update for now, see https://github.com/actions/setup-python/issues/577
# brew update
brew install luarocks ninja
luarocks install luafilesystem 1.8.0
luarocks install moonscript --dev
brew install libass zlib ffms2 fftw hunspell
brew install pulseaudio # NO OpenAL in github CI
- name: Install dependencies (Linux)
if: startsWith(matrix.config.os, 'ubuntu-')
run: |
sudo apt-get update
sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev libhunspell-dev libuchardet-dev libpulse-dev libopenal-dev libjansson-dev nasm
- name: Configure
run: meson setup build ${{ matrix.config.args }} -Dbuildtype=${{ matrix.config.buildtype }}
- name: Build
run: meson compile -C build
- name: Run test
run: meson test -C build --verbose "gtest main"
# Windows artifacts
- name: Generate Windows installer
if: matrix.config.os == 'windows-latest'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run:
meson compile win-installer -C build
- name: Generate Windows portable installer
if: matrix.config.os == 'windows-latest'
run: cd build && ninja win-portable
- name: Upload artifacts - win_installer
uses: actions/upload-artifact@v3
if: matrix.config.os == 'windows-latest'
with:
name: ${{ matrix.config.name }} - installer
path: build/Aegisub-*.exe
if-no-files-found: error
- name: Upload artifacts - portable.zip
uses: actions/upload-artifact@v3
if: matrix.config.os == 'windows-latest'
with:
name: ${{ matrix.config.name }} - portable
path: build/aegisub-portable-64.zip
# macOS artifacts
- name: Generate macOS installer
if: matrix.config.os == 'macos-12'
run: |
meson compile osx-bundle -C build
meson compile osx-build-dmg -C build
- name: Upload artifacts - macOS dmg
uses: actions/upload-artifact@v3
if: matrix.config.os == 'macos-12'
with:
name: ${{ matrix.config.name }} - installer
path: build/Aegisub-*.dmg
if-no-files-found: error
# Linux artifacts (AppImage)
- name: Generate AppImage
if: matrix.config.appimage
run: |
mkdir -p appimage/appdir
meson install -C build --destdir=../appimage/appdir
cd appimage
sudo apt-get install libfuse2
curl -L "https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20220822-1/linuxdeploy-x86_64.AppImage" -o linuxdeploy
curl -L "https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage" -o appimagetool
chmod +x linuxdeploy appimagetool
./linuxdeploy --appdir appdir --desktop-file=appdir/aegisub.desktop
./appimagetool appdir
- name: Upload artifacts - Linux AppImage
uses: actions/upload-artifact@v3
if: matrix.config.appimage
with:
name: ${{ matrix.config.name }}
path: appimage/*.AppImage
if-no-files-found: error

116
.gitignore vendored
View File

@ -1,97 +1,49 @@
*.App
*.[oadi]
*.ass
*.avi
*.bz2
*.cache
*.dep
*.db
*.dll
*.dmg
*.exe
*.gch
*.gz
*.idb
*.ilk
*.log
*.manifest
*.mkv
*.mo
*.ncb
*.obj
*.opensdf
*.orig
*.patch
*.pch
*.pdb
*.profdata
*.profraw
*.sdf
*.so
*.srt
*.suo
*.swp
*.ts
*.user
*.vsp
*.y4m
*.zip
*~
/bin
/include
/ipch
/lib
/obj
/tests/data
.lvimrc
.syntastic_cpp_config
/Makefile.inc
BuildLog.htm
acconf.h
acconf.h.in
aclocal.m4
autom4te.cache
automation/aegisub-lua
build/userconfig/*.props
conf.sh
config.log
config.status
config_windows.h
configure
git_version.h
git_version.xml
automation/vapoursynth/__pycache__
packages/desktop/aegisub.desktop
packages/desktop/aegisub.desktop.template
packages/win_installer/vendor
src/aegisub
src/libresrc/bitmap.cpp
src/libresrc/bitmap.h
src/libresrc/default_config.cpp
src/libresrc/default_config.h
src/libresrc/default_config_platform.json
svn-revision.h
svn_revision
tests/*.json
tests/run
tools/osx-bundle-restart-helper
tools/osx-bundle.sed
tools/repack-thes-dict
tools/repack-thes-dict.dSYM
vendor/fribidi
vendor/luajit/src/host/buildvm
vendor/luajit/src/host/minilua
vendor/luajit/src/host/buildvm_arch.h
vendor/luajit/src/jit/vmdef.lua
vendor/luajit/src/gen
vendor/luajit/src/lj_vm.s
vendor/luajit/src/lj_bcdef.h
vendor/luajit/src/lj_ffdef.h
vendor/luajit/src/lj_folddef.h
vendor/luajit/src/lj_libdef.h
vendor/luajit/src/lj_recdef.h
vendor/luajit/src/luajit
.nuget
.vs
# Platform-specific
.DS_Store
# Meson
build*/
subprojects/avisynth
subprojects/bestsource/
subprojects/boost*/
subprojects/cairo*
subprojects/dav1d
subprojects/ffmpeg
subprojects/ffms2
subprojects/fontconfig*
subprojects/freetype2
subprojects/fribidi
subprojects/glib*
subprojects/googletest-*
subprojects/harfbuzz
subprojects/icu
subprojects/jansson
subprojects/libass
subprojects/libffi*
subprojects/libpng-*
subprojects/luajit
subprojects/nasm-*
subprojects/packagecache
subprojects/proxy-libintl*
subprojects/wxWidgets
subprojects/zlib-*
subprojects/dirent-*
subprojects/hunspell-*
subprojects/uchardet-*
subprojects/vapoursynth

42
.gitmodules vendored
View File

@ -1,42 +0,0 @@
[submodule "freetype2"]
path = vendor/freetype2
url = git://git.sv.nongnu.org/freetype/freetype2.git
ignore = dirty
[submodule "wxWidgets"]
path = vendor/wxWidgets
url = git://github.com/Aegisub/wxWidgets.git
ignore = dirty
[submodule "googletest"]
path = vendor/googletest
url = git://github.com/svn2github/googletest.git
ignore = dirty
[submodule "ffmpeg"]
path = vendor/ffmpeg
url = git://source.ffmpeg.org/ffmpeg.git
ignore = dirty
[submodule "ffms2"]
path = vendor/ffms2
url = git://github.com/FFMS/ffms2.git
branch = master
ignore = dirty
[submodule "libass"]
path = vendor/libass
url = git://github.com/libass/libass.git
branch = master
[submodule "icu"]
path = vendor/icu
url = git://github.com/svn2github/icu4c.git
branch = master
ignore = dirty
[submodule "boost"]
path = vendor/boost
url = https://github.com/boostorg/boost.git
ignore = dirty
[submodule "fftw"]
path = vendor/fftw
url = https://github.com/Aegisub/fftw3.git
ignore = dirty
[submodule "uchardet"]
path = vendor/uchardet
url = https://gitlab.freedesktop.org/uchardet/uchardet.git
ignore = dirty

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositoryPath" value="lib" />
</config>
</configuration>

View File

@ -1,150 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">true</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">false</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config -->
<!--
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
<PackagesConfig>packages.config</PackagesConfig>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\nuget.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -solutionDir "$(SolutionDir) "</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<ResolveReferencesDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(ResolveReferencesDependsOn);
</ResolveReferencesDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
parallel builds will have to wait for it to complete.
-->
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT" />
</Target>
<Target Name="_DownloadNuGet">
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<EnvKey ParameterType="System.String" Required="true" />
<EnvValue ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process);
}
catch {
}
]]>
</Code>
</Task>
</UsingTask>
</Project>

View File

@ -1,68 +0,0 @@
sudo: required
dist: trusty
language: cpp
git:
submodules: false
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- libasound2-dev
- libfftw3-dev
- libhunspell-dev
- yasm
- libfribidi-dev
- libass-dev
- libicu-dev
- luarocks
- g++-5
matrix:
include:
- compiler: gcc
env: BOOST_VERSION=55
- compiler: gcc
env: BOOST_VERSION=60
before_install:
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 --slave /usr/bin/gcov gcov /usr/bin/gcov-5
install:
# Can't install these via the apt addon due to the whitelist
- sudo apt-get install -y -qq libffms2-dev libwxgtk3.0-dev libuchardet-dev
- sudo pip install cpp-coveralls
- sudo luarocks install busted > /dev/null
- sudo luarocks install moonscript > /dev/null
- sudo luarocks install uuid > /dev/null
- git submodule --quiet init
- git submodule --quiet update vendor/googletest
- cd vendor
- rm -rf boost
- wget http://sourceforge.net/projects/boost/files/boost/1.${BOOST_VERSION}.0/boost_1_${BOOST_VERSION}_0.tar.bz2/download
- tar xjf download
- mv boost_1_${BOOST_VERSION}_0 boost
- cd boost
- ./bootstrap.sh
- ./b2 -j3 -layout=system threading=multi cxxflags=-std=c++11 link=shared variant=release --without-python --without-iostreams --without-serialization --without-graph --without-log --without-math --without-signals --without-test --without-wave --without-mpi --without-program_options --without-graph_parallel --without-context --without-coroutine --without-random --without-timer --without-date_time
- cd ../..
script:
- export CPATH=$(pwd)/vendor/boost
- export LD_LIBRARY_PATH=$(pwd)/vendor/boost/stage/lib:$LD_LIBRARY_PATH
- export CPPFLAGS="-fprofile-arcs -ftest-coverage"
- export LIBS="-lgcov"
- autoreconf -if
- ./configure BOOST_LDFLAGS="-L$(pwd)/vendor/boost/stage/lib" --enable-debug || cat config.log
- make -j3 all test
- coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null
notifications:
email:
- on_success: change
- on_failure: change

View File

@ -1,572 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30324.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aegisub", "build\Aegisub\Aegisub.vcxproj", "{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csrihelper", "build\csrihelper\csrihelper.vcxproj", "{C832EAF3-860D-4373-A02C-933626B47A5E}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hunspell", "build\hunspell\hunspell.vcxproj", "{CC791693-6B28-40AC-879D-64A6C16468E3}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaegisub", "build\libaegisub\libaegisub.vcxproj", "{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}"
ProjectSection(ProjectDependencies) = postProject
{A649D828-A399-4D81-ADEF-94CFDBA7847F} = {A649D828-A399-4D81-ADEF-94CFDBA7847F}
{F934AB7B-186B-4E96-B20C-A58C38C1B818} = {F934AB7B-186B-4E96-B20C-A58C38C1B818}
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} = {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}
{965054D2-44F2-4EB2-9879-051CC3D7EF08} = {965054D2-44F2-4EB2-9879-051CC3D7EF08}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "build\libiconv\libiconv.vcxproj", "{965054D2-44F2-4EB2-9879-051CC3D7EF08}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libresrc", "build\libresrc\libresrc.vcxproj", "{BD00D65F-24DA-4784-8860-3B972EA125FC}"
ProjectSection(ProjectDependencies) = postProject
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC} = {0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luabins", "build\luabins\luabins.vcxproj", "{A7A30702-8162-4E1A-A010-EF51B590C121}"
ProjectSection(ProjectDependencies) = postProject
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F} = {5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "universalchardet", "build\universalchardet\universalchardet.vcxproj", "{7B56955D-5162-4698-AA5B-47484EDC8783}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fftw", "build\fftw\fftw.vcxproj", "{EA3DCC95-2423-4EA0-A508-7A427B4C0594}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "build\freetype2\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fribidi", "build\fribidi\fribidi.vcxproj", "{FB8E8D19-A4D6-4181-943C-282075F49B41}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffms2", "build\ffms2\ffms2.vcxproj", "{AA137613-96A1-4388-8905-71345B4F8F87}"
ProjectSection(ProjectDependencies) = postProject
{F934AB7B-186B-4E96-B20C-A58C38C1B819} = {F934AB7B-186B-4E96-B20C-A58C38C1B819}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffmpeg", "build\ffmpeg\ffmpeg.vcxproj", "{F934AB7B-186B-4E96-B20C-A58C38C1B819}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE} = {10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "build\zlib\zlib.vcxproj", "{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{CEAEFCB9-3759-4D03-8D51-7287D7B7E7DF}"
ProjectSection(SolutionItems) = preProject
.nuget\NuGet.Config = .nuget\NuGet.Config
.nuget\NuGet.exe = .nuget\NuGet.exe
.nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxWidgets", "build\wx\wxWidgets.vcxproj", "{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass", "build\libass\libass.vcxproj", "{8804F253-DA67-4CC4-926B-0CD2AEE5778D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortableInstaller", "build\PortableInstaller\PortableInstaller.vcxproj", "{5B0E9978-E76F-4BBC-8194-228323F59B53}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost", "build\boost\boost.vcxproj", "{A649D828-A399-4D81-ADEF-94CFDBA7847F}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
{F934AB7B-186B-4E96-B20C-A58C38C1B818} = {F934AB7B-186B-4E96-B20C-A58C38C1B818}
{965054D2-44F2-4EB2-9879-051CC3D7EF08} = {965054D2-44F2-4EB2-9879-051CC3D7EF08}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icu", "build\icu\icu.vcxproj", "{F934AB7B-186B-4E96-B20C-A58C38C1B818}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "googletest", "build\googletest\googletest.vcxproj", "{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tests", "build\tests\tests.vcxproj", "{49766286-2B5D-4177-A860-BD7CE1846EEF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuildTasks", "build\BuildTasks\BuildTasks.csproj", "{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit-minilua", "build\luajit-minilua\luajit-minilua.vcxproj", "{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}"
ProjectSection(ProjectDependencies) = postProject
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6} = {914A5B35-66B2-4293-BB6C-D93DA9BC68C6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit-buildvm", "build\luajit-buildvm\luajit-buildvm.vcxproj", "{7CA6A4EB-A11B-4975-8F3A-F633111C6213}"
ProjectSection(ProjectDependencies) = postProject
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF} = {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luajit", "build\luajit\luajit.vcxproj", "{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}"
ProjectSection(ProjectDependencies) = postProject
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF} = {FCAED410-90EF-4EF9-916C-4B86DC13A3CF}
{7CA6A4EB-A11B-4975-8F3A-F633111C6213} = {7CA6A4EB-A11B-4975-8F3A-F633111C6213}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "expat", "build\expat\expat.vcxproj", "{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "build\libpng\libpng.vcxproj", "{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scintilla", "build\scintilla\scintilla.vcxproj", "{D6EA54FD-F15C-42F6-929B-A83F299A4582}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug-MinDep|Win32 = Debug-MinDep|Win32
Debug-MinDep|x64 = Debug-MinDep|x64
Debug-Tests|Win32 = Debug-Tests|Win32
Debug-Tests|x64 = Debug-Tests|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release-MinDep|Win32 = Release-MinDep|Win32
Release-MinDep|x64 = Release-MinDep|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|Win32.ActiveCfg = Debug|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|Win32.Build.0 = Debug|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|x64.ActiveCfg = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug|x64.Build.0 = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|Win32.Build.0 = Debug|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-MinDep|x64.Build.0 = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|x64.ActiveCfg = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Debug-Tests|x64.Build.0 = Debug|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|Win32.ActiveCfg = Release|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|Win32.Build.0 = Release|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|x64.ActiveCfg = Release|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release|x64.Build.0 = Release|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|Win32.Build.0 = Release|Win32
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|x64.ActiveCfg = Release|x64
{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}.Release-MinDep|x64.Build.0 = Release|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|Win32.ActiveCfg = Debug|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|Win32.Build.0 = Debug|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|x64.ActiveCfg = Debug|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug|x64.Build.0 = Debug|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Debug-Tests|x64.ActiveCfg = Debug|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release|Win32.ActiveCfg = Release|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release|Win32.Build.0 = Release|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release|x64.ActiveCfg = Release|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release|x64.Build.0 = Release|x64
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{C832EAF3-860D-4373-A02C-933626B47A5E}.Release-MinDep|x64.ActiveCfg = Release|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|Win32.ActiveCfg = Debug|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|Win32.Build.0 = Debug|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|x64.ActiveCfg = Debug|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug|x64.Build.0 = Debug|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Debug-Tests|x64.ActiveCfg = Debug|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release|Win32.ActiveCfg = Release|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release|Win32.Build.0 = Release|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release|x64.ActiveCfg = Release|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release|x64.Build.0 = Release|x64
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{CC791693-6B28-40AC-879D-64A6C16468E3}.Release-MinDep|x64.ActiveCfg = Release|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|Win32.ActiveCfg = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|Win32.Build.0 = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|x64.ActiveCfg = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug|x64.Build.0 = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|Win32.Build.0 = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-MinDep|x64.Build.0 = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|Win32.Build.0 = Debug|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|x64.ActiveCfg = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Debug-Tests|x64.Build.0 = Debug|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|Win32.ActiveCfg = Release|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|Win32.Build.0 = Release|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|x64.ActiveCfg = Release|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release|x64.Build.0 = Release|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|Win32.Build.0 = Release|Win32
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|x64.ActiveCfg = Release|x64
{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}.Release-MinDep|x64.Build.0 = Release|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|Win32.ActiveCfg = Debug|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|Win32.Build.0 = Debug|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|x64.ActiveCfg = Debug|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug|x64.Build.0 = Debug|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Debug-Tests|x64.ActiveCfg = Debug|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|Win32.ActiveCfg = Release|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|Win32.Build.0 = Release|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|x64.ActiveCfg = Release|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release|x64.Build.0 = Release|x64
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{965054D2-44F2-4EB2-9879-051CC3D7EF08}.Release-MinDep|x64.ActiveCfg = Release|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|Win32.ActiveCfg = Debug|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|Win32.Build.0 = Debug|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|x64.ActiveCfg = Debug|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug|x64.Build.0 = Debug|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|Win32.Build.0 = Debug|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-MinDep|x64.Build.0 = Debug|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Debug-Tests|x64.ActiveCfg = Debug|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|Win32.ActiveCfg = Release|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|Win32.Build.0 = Release|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|x64.ActiveCfg = Release|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release|x64.Build.0 = Release|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|Win32.Build.0 = Release|Win32
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|x64.ActiveCfg = Release|x64
{BD00D65F-24DA-4784-8860-3B972EA125FC}.Release-MinDep|x64.Build.0 = Release|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|Win32.ActiveCfg = Debug|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|Win32.Build.0 = Debug|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|x64.ActiveCfg = Debug|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug|x64.Build.0 = Debug|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|x64.ActiveCfg = Debug|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Debug-Tests|x64.Build.0 = Debug|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release|Win32.ActiveCfg = Release|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release|Win32.Build.0 = Release|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release|x64.ActiveCfg = Release|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release|x64.Build.0 = Release|x64
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{A7A30702-8162-4E1A-A010-EF51B590C121}.Release-MinDep|x64.ActiveCfg = Release|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|Win32.ActiveCfg = Debug|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|Win32.Build.0 = Debug|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|x64.ActiveCfg = Debug|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug|x64.Build.0 = Debug|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Debug-Tests|x64.ActiveCfg = Debug|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release|Win32.ActiveCfg = Release|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release|Win32.Build.0 = Release|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release|x64.ActiveCfg = Release|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release|x64.Build.0 = Release|x64
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{7B56955D-5162-4698-AA5B-47484EDC8783}.Release-MinDep|x64.ActiveCfg = Release|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|Win32.ActiveCfg = Debug|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|Win32.Build.0 = Debug|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|x64.ActiveCfg = Debug|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug|x64.Build.0 = Debug|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Debug-Tests|x64.ActiveCfg = Debug|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|Win32.ActiveCfg = Release|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|Win32.Build.0 = Release|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|x64.ActiveCfg = Release|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release|x64.Build.0 = Release|x64
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{EA3DCC95-2423-4EA0-A508-7A427B4C0594}.Release-MinDep|x64.ActiveCfg = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug-Tests|x64.ActiveCfg = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release-MinDep|x64.ActiveCfg = Release|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|Win32.ActiveCfg = Debug|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|Win32.Build.0 = Debug|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|x64.ActiveCfg = Debug|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug|x64.Build.0 = Debug|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Debug-Tests|x64.ActiveCfg = Debug|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|Win32.ActiveCfg = Release|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|Win32.Build.0 = Release|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|x64.ActiveCfg = Release|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release|x64.Build.0 = Release|x64
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{AD56899E-961B-47B7-BD0F-14D0DA50D141}.Release-MinDep|x64.ActiveCfg = Release|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|Win32.ActiveCfg = Debug|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|Win32.Build.0 = Debug|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|x64.ActiveCfg = Debug|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug|x64.Build.0 = Debug|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Debug-Tests|x64.ActiveCfg = Debug|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|Win32.ActiveCfg = Release|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|Win32.Build.0 = Release|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|x64.ActiveCfg = Release|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release|x64.Build.0 = Release|x64
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{FB8E8D19-A4D6-4181-943C-282075F49B41}.Release-MinDep|x64.ActiveCfg = Release|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug|Win32.ActiveCfg = Debug|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug|Win32.Build.0 = Debug|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug|x64.ActiveCfg = Debug|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug|x64.Build.0 = Debug|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Debug-Tests|x64.ActiveCfg = Debug|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Release|Win32.ActiveCfg = Release|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Release|Win32.Build.0 = Release|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Release|x64.ActiveCfg = Release|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Release|x64.Build.0 = Release|x64
{AA137613-96A1-4388-8905-71345B4F8F87}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{AA137613-96A1-4388-8905-71345B4F8F87}.Release-MinDep|x64.ActiveCfg = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|Win32.Build.0 = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug|x64.Build.0 = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Debug-Tests|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|Win32.ActiveCfg = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|Win32.Build.0 = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|x64.ActiveCfg = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release|x64.Build.0 = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B819}.Release-MinDep|x64.ActiveCfg = Release|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|Win32.ActiveCfg = Debug|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|Win32.Build.0 = Debug|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|x64.ActiveCfg = Debug|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug|x64.Build.0 = Debug|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Debug-Tests|x64.ActiveCfg = Debug|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|Win32.ActiveCfg = Release|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|Win32.Build.0 = Release|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|x64.ActiveCfg = Release|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release|x64.Build.0 = Release|x64
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{10F22A5A-DD9E-44A1-BA2E-2A9A7C78B0EE}.Release-MinDep|x64.ActiveCfg = Release|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|Win32.ActiveCfg = Debug|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|Win32.Build.0 = Debug|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|x64.ActiveCfg = Debug|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug|x64.Build.0 = Debug|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Debug-Tests|x64.ActiveCfg = Debug|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|Win32.ActiveCfg = Release|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|Win32.Build.0 = Release|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|x64.ActiveCfg = Release|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release|x64.Build.0 = Release|x64
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{0518D6C0-7BF6-4FD1-91FB-191BD10DB2AC}.Release-MinDep|x64.ActiveCfg = Release|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|Win32.ActiveCfg = Debug|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|Win32.Build.0 = Debug|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|x64.ActiveCfg = Debug|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug|x64.Build.0 = Debug|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Debug-Tests|x64.ActiveCfg = Debug|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.ActiveCfg = Release|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.Build.0 = Release|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.ActiveCfg = Release|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.Build.0 = Release|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release-MinDep|x64.ActiveCfg = Release|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|Win32.ActiveCfg = Debug|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|x64.ActiveCfg = Debug|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug-Tests|x64.ActiveCfg = Debug|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|Win32.ActiveCfg = Release|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|x64.ActiveCfg = Release|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release-MinDep|x64.ActiveCfg = Release|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|Win32.ActiveCfg = Debug|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|Win32.Build.0 = Debug|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|x64.ActiveCfg = Debug|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug|x64.Build.0 = Debug|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Debug-Tests|x64.ActiveCfg = Debug|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|Win32.ActiveCfg = Release|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|Win32.Build.0 = Release|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|x64.ActiveCfg = Release|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release|x64.Build.0 = Release|x64
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{A649D828-A399-4D81-ADEF-94CFDBA7847F}.Release-MinDep|x64.ActiveCfg = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|Win32.Build.0 = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug|x64.Build.0 = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|x64.ActiveCfg = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Debug-Tests|x64.Build.0 = Debug|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|Win32.ActiveCfg = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|Win32.Build.0 = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|x64.ActiveCfg = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release|x64.Build.0 = Release|x64
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{F934AB7B-186B-4E96-B20C-A58C38C1B818}.Release-MinDep|x64.ActiveCfg = Release|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|Win32.ActiveCfg = Debug|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|Win32.Build.0 = Debug|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|x64.ActiveCfg = Debug|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug|x64.Build.0 = Debug|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-MinDep|x64.ActiveCfg = Debug|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Debug-Tests|x64.ActiveCfg = Debug|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|Win32.ActiveCfg = Release|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|Win32.Build.0 = Release|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|x64.ActiveCfg = Release|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release|x64.Build.0 = Release|x64
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}.Release-MinDep|x64.ActiveCfg = Release|x64
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|Win32.ActiveCfg = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|Win32.Build.0 = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|x64.ActiveCfg = Debug|x64
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug|x64.Build.0 = Debug|x64
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-MinDep|x64.ActiveCfg = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|Win32.Build.0 = Debug|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Debug-Tests|x64.ActiveCfg = Debug|x64
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Release|Win32.ActiveCfg = Release|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Release|x64.ActiveCfg = Release|x64
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{49766286-2B5D-4177-A860-BD7CE1846EEF}.Release-MinDep|x64.ActiveCfg = Release|x64
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|Win32.Build.0 = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug|x64.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-MinDep|Win32.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-MinDep|x64.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-Tests|Win32.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Debug-Tests|x64.ActiveCfg = Debug|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release|Win32.ActiveCfg = Release|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release|x64.ActiveCfg = Release|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release-MinDep|Win32.ActiveCfg = Release|Any CPU
{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}.Release-MinDep|x64.ActiveCfg = Release|Any CPU
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|Win32.ActiveCfg = Debug|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|Win32.Build.0 = Debug|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|x64.ActiveCfg = Debug|x64
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug|x64.Build.0 = Debug|x64
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Debug-Tests|x64.ActiveCfg = Debug|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|Win32.ActiveCfg = Release|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|Win32.Build.0 = Release|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|x64.ActiveCfg = Release|x64
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release|x64.Build.0 = Release|x64
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}.Release-MinDep|x64.ActiveCfg = Release|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|Win32.ActiveCfg = Debug|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|Win32.Build.0 = Debug|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|x64.ActiveCfg = Debug|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug|x64.Build.0 = Debug|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Debug-Tests|x64.ActiveCfg = Debug|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|Win32.ActiveCfg = Release|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|Win32.Build.0 = Release|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|x64.ActiveCfg = Release|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release|x64.Build.0 = Release|x64
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{7CA6A4EB-A11B-4975-8F3A-F633111C6213}.Release-MinDep|x64.ActiveCfg = Release|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|Win32.ActiveCfg = Debug|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|Win32.Build.0 = Debug|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|x64.ActiveCfg = Debug|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug|x64.Build.0 = Debug|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|x64.ActiveCfg = Debug|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Debug-Tests|x64.Build.0 = Debug|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|Win32.ActiveCfg = Release|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|Win32.Build.0 = Release|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|x64.ActiveCfg = Release|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release|x64.Build.0 = Release|x64
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}.Release-MinDep|x64.ActiveCfg = Release|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|Win32.ActiveCfg = Debug|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|Win32.Build.0 = Debug|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|x64.ActiveCfg = Debug|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug|x64.Build.0 = Debug|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|Win32.Build.0 = Debug|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|x64.ActiveCfg = Debug|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Debug-Tests|x64.Build.0 = Debug|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|Win32.ActiveCfg = Release|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|Win32.Build.0 = Release|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|x64.ActiveCfg = Release|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release|x64.Build.0 = Release|x64
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}.Release-MinDep|x64.ActiveCfg = Release|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|Win32.ActiveCfg = Debug|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|Win32.Build.0 = Debug|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|x64.ActiveCfg = Debug|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug|x64.Build.0 = Debug|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|Win32.Build.0 = Debug|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|x64.ActiveCfg = Debug|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Debug-Tests|x64.Build.0 = Debug|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|Win32.ActiveCfg = Release|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|Win32.Build.0 = Release|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|x64.ActiveCfg = Release|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release|x64.Build.0 = Release|x64
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}.Release-MinDep|x64.ActiveCfg = Release|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|Win32.ActiveCfg = Debug|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|Win32.Build.0 = Debug|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|x64.ActiveCfg = Debug|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug|x64.Build.0 = Debug|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-MinDep|Win32.ActiveCfg = Debug|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-MinDep|x64.ActiveCfg = Debug|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|Win32.ActiveCfg = Debug|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|Win32.Build.0 = Debug|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|x64.ActiveCfg = Debug|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Debug-Tests|x64.Build.0 = Debug|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|Win32.ActiveCfg = Release|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|Win32.Build.0 = Release|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|x64.ActiveCfg = Release|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release|x64.Build.0 = Release|x64
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release-MinDep|Win32.ActiveCfg = Release|Win32
{D6EA54FD-F15C-42F6-929B-A83F299A4582}.Release-MinDep|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -1,12 +0,0 @@
include header.mk
ifeq (yes, $(BUILD_DARWIN))
osx-bundle:
$(BIN_SHELL) tools/osx-bundle.sh "$(AEGISUB_COMMAND)" "$(BIN_WX_CONFIG)" "$(FONTCONFIG_CONF_DIR)" DICT_DIR=$(DICT_DIR)
osx-dmg: osx-bundle
codesign -s 'Mac Developer' --deep Aegisub.app || true
$(BIN_SHELL) tools/osx-dmg.sh "$(BUILD_VERSION_STRING)"
endif
include Makefile.target

View File

@ -1,139 +0,0 @@
#########################
# AEGISUB FEATURE SUPPORT
#########################
HAVE_ALSA = @with_alsa@
HAVE_FFMS2 = @with_ffms2@
HAVE_HUNSPELL = @with_hunspell@
HAVE_LIBPULSE = @with_libpulse@
HAVE_OPENAL = @with_openal@
HAVE_OSS = @with_oss@
HAVE_PORTAUDIO = @with_portaudio@
HAVE_UCHARDET = @with_uchardet@
##############
# BUILD OUTPUT
##############
PROGRAM := $(PROGRAM)
LIB := $(LIB)
###################
# PLATFORM SETTINGS
###################
BUILD_DARWIN = @build_darwin@
#######
# FLAGS
#######
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
CPPFLAGS = @CPPFLAGS@
CFLAGS_DEP = -MMD -MP
LIBS = @LIBS@
LDFLAGS = @LDFLAGS@
INSTALL_FLAGS = -m 644
LIB_SHARED_LINK = -shared -Wl,-soname -Wl,$(LIB_SHARED_FULL)
LIB_SHARED_LINK_OSX = -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -compatibility_version $(LIB_VERSION) -current_version $(LIB_VERSION) -Wl,-single_module -mmacosx-version-min=10.8 -install_name ${CURDIR}/$(LIB_SHARED_FULL)
#########
# STRINGS
#########
AEGISUB_COMMAND = @AEGISUB_COMMAND@
AEGISUB_CATALOG = @AEGISUB_CATALOG@
BUILD_DATE = @BUILD_DATE@
BUILD_VERSION_STRING = @BUILD_GIT_VERSION_STRING@
#######
# PATHS
#######
prefix = ${P_PREFIX}
exec_prefix = ${P_PREFIX_EXEC}
datarootdir = ${P_DATAROOT}
P_PREFIX = @prefix@
P_PREFIX_EXEC = @exec_prefix@
P_BINDIR = @bindir@
P_DATAROOT = @datarootdir@
P_LOCALE = @localedir@
P_DESKTOP = @P_DESKTOP@
P_ICON = @P_ICON@
P_DATA = $(P_DATAROOT)/aegisub/
###############
# LIBRARY FLAGS
###############
CFLAGS_WX = @WX_CFLAGS@
CXXFLAGS_WX = @WX_CXXFLAGS@
CPPFLAGS_WX = @WX_CPPFLAGS@
LIBS_WX = @WX_LIBS@ -lz
CPPFLAGS_BOOST = @BOOST_CPPFLAGS@
LIBS_BOOST = @BOOST_LDFLAGS@ @BOOST_FILESYSTEM_LIB@ @BOOST_LOCALE_LIB@ @BOOST_REGEX_LIB@ @BOOST_SYSTEM_LIB@ @BOOST_THREAD_LIB@ @BOOST_CHRONO_LIB@
CFLAGS_FFMS2 = @FFMS2_CFLAGS@
CFLAGS_FFTW3 = @FFTW3_CFLAGS@
CFLAGS_FONTCONFIG = @FONTCONFIG_CFLAGS@
CFLAGS_FREETYPE = @FREETYPE_CFLAGS@
CFLAGS_GL = @GL_CFLAGS@
CFLAGS_HUNSPELL = @HUNSPELL_CFLAGS@
CFLAGS_ICONV = @ICONV_CFLAGS@
CFLAGS_ICU = @ICU_I18N_CFLAGS@
CFLAGS_LIBASS = @LIBASS_CFLAGS@
CFLAGS_LIBPULSE = @LIBPULSE_CFLAGS@
CFLAGS_LUA = @LUAJIT_CFLAGS@
CFLAGS_OPENAL = @OPENAL_CFLAGS@
CFLAGS_OSS = @OSS_CFLAGS@
CFLAGS_PORTAUDIO = @PORTAUDIO_CFLAGS@
CFLAGS_PTHREAD = @PTHREAD_CFLAGS@
CFLAGS_UCHARDET = @UCHARDET_CFLAGS@
LIBS_ALSA = @ALSA_LIBS@
LIBS_FFMS2 = @FFMS2_LIBS@
LIBS_FFTW3 = @FFTW3_LIBS@
LIBS_FONTCONFIG = @FONTCONFIG_LIBS@
LIBS_FREETYPE = @FREETYPE_LIBS@
LIBS_GL = @GL_LIBS@
LIBS_HUNSPELL = @HUNSPELL_LIBS@
LIBS_ICONV = @ICONV_LIBS@
LIBS_ICU = @ICU_UC_LIBS@ @ICU_I18N_LIBS@
LIBS_LIBASS = @LIBASS_LIBS@
LIBS_LIBPULSE = @LIBPULSE_LIBS@
LIBS_LUA = @LUAJIT_LIBS@
LIBS_OPENAL = @OPENAL_LIBS@
LIBS_PORTAUDIO = @PORTAUDIO_LIBS@
LIBS_PTHREAD = @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
LIBS_UCHARDET = @UCHARDET_LIBS@
ifeq (yes, $(BUILD_DARWIN))
LIBS_LUA = $(TOP)vendor/luajit/src/libluajit.a
endif
FONTCONFIG_CONF_DIR = @FONTCONFIG_CONF_DIR@
#####################
# DEBUG / DEVELOPMENT
#####################
PRECOMPILED_HEADER = @enable_gcc_prec@
##########
# BINARIES
##########
BIN_AR = ar
BIN_RANLIB = ranlib
BIN_LN = ln
BIN_RM = rm
BIN_SHELL = @SHELL@
BIN_MV = mv
BIN_SED = sed
BIN_INSTALL = @INSTALL@
BIN_MSGMERGE = @MSGMERGE@
BIN_XGETTEXT = @XGETTEXT@
BIN_MSGFMT = @MSGFMT@
BIN_CC = @CC@
BIN_CXX = @CXX@
BIN_CP = cp
BIN_MKDIR = mkdir
BIN_MKDIR_P = mkdir -p
BIN_ECHO = echo
BIN_TOUCH = touch
BIN_LUA = @LUA@
BIN_WX_CONFIG = @WX_CONFIG_PATH@

View File

@ -1,121 +0,0 @@
ifneq (yes, $(INCLUDING_CHILD_MAKEFILES))
COMMANDS := all install clean distclean test depclean osx-bundle osx-dmg test-automation test-libaegisub
.PHONY: $(COMMANDS)
.DEFAULT_GOAL := all
# Would be nice to move this somewhere else (Makefile.inc?)
ifeq (yes, $(BUILD_DARWIN))
CFLAGS += -mmacosx-version-min=10.8 -gfull
CXXFLAGS += -mmacosx-version-min=10.8 -gfull
LDFLAGS += -mmacosx-version-min=10.8 -Wl,-dead_strip -pagezero_size 10000 -image_base 100000000
LIB_SHARED_LINK = $(LIB_SHARED_LINK_OSX)
endif
LIB_TARGETS := $(addprefix $(TOP)lib/,$(LIB:%=lib%.a))
# Handle per-target flags in the form foo_CFLAGS := -w by mapping them to all
# of the objects a target depends on. This has potentially dumb results if
# multiple targets use a single object file, so don't do that.
define set_target_flags
OBJ += $($1_OBJ)
$($1_OBJ): CPPFLAGS := $(CPPFLAGS) $($1_CPPFLAGS)
$($1_OBJ): CXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS)
$($1_OBJ): OBJCXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS)
ifeq (yes, $(PRECOMPILED_HEADER))
ifdef $1_PCH
CLEANFILES += $($1_PCH).gch
$($1_OBJ): CXXFLAGS += -include $($1_PCH) $(PCHFLAGS)
$($1_OBJ): $($1_PCH).gch
$($1_PCH).gch: $($1_PCH)
$($1_PCH).gch: CPPFLAGS := $(CPPFLAGS) $($1_CPPFLAGS)
$($1_PCH).gch: CXXFLAGS := $(CXXFLAGS) $($1_CXXFLAGS)
else
$($1_OBJ): CXXFLAGS += -include acconf.h
endif
else
$($1_OBJ): CXXFLAGS += -include acconf.h
endif
endef
$(foreach target,$(LIB),$(eval $(call set_target_flags,$(target),$(TOP)lib/lib$(target).a)))
$(foreach target,$(PROGRAM),$(eval $(call set_target_flags,$(notdir $(target)),$(target))))
# Create the build and install targets for programs
# Not done with a pattern rule since the pattern would be just %: and doing that
# leads to make trying to use gcc to make any nonexistent targets rather than
# erroring
define create_program_targets
ifdef $1_INSTALLNAME
install: $(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME)
$(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME): $(dir $2)$($1_INSTALLNAME)
@$(BIN_MKDIR) -p $(DESTDIR)$(P_BINDIR)
@$(BIN_INSTALL) $(dir $2)$($1_INSTALLNAME) $(DESTDIR)$(P_BINDIR)/$($1_INSTALLNAME)
$(dir $2)$($1_INSTALLNAME): $($1_OBJ)
$(BIN_CXX) -o $(dir $2)$($1_INSTALLNAME) $(LDFLAGS) $($1_OBJ) $(LIBS) $($1_LIBS)
all: $(dir $2)$($1_INSTALLNAME)
else
$2: $($1_OBJ)
$(BIN_CXX) -o $2 $(LDFLAGS) $($1_OBJ) $(LIBS) $($1_LIBS)
all: $2
endif
$(eval CLEANFILES += $(filter-out %/,$2 $(dir $2)$($1_INSTALLNAME)))
endef
$(foreach target,$(PROGRAM),$(eval $(call create_program_targets,$(notdir $(target)),$(target))))
# The dependency files which will be automatically generated by gcc.
# The filter is due to that libraries also appear in OBJ
DEP := $(filter %.d,$(OBJ:%.o=%.d))
# If the goal is a relative path to a file, convert it to an absolute path
ifneq ($(filter-out $(COMMANDS),$(MAKECMDGOALS)),)
ABSGOAL := $(abspath $(MAKECMDGOALS))
ifneq ($(MAKECMDGOALS),$(ABSGOAL))
$(MAKECMDGOALS): $(ABSGOAL) ;
endif
endif
# Primary build targets
all: $(LIB_TARGETS)
clean:
$(BIN_RM) -f $(OBJ) $(CLEANFILES) $(LIB_TARGETS)
distclean: clean
$(BIN_RM) -rf $(DISTCLEANFILES) $(DEP)
depclean: clean
$(BIN_RM) -rf $(DEP)
install:
# The actual build rules
.SUFFIXES:
CXX_CMD = $(CXX_ENV) $(BIN_CXX) $(CFLAGS_DEP) $(CPPFLAGS)
CC_CMD = $(CXX_ENV) $(BIN_CC) $(CFLAGS_DEP) $(CPPFLAGS)
POST_FLAGS = $($@_FLAGS) -c -o $@ $<
%.o: %.c ; $(CC_CMD) $(CFLAGS) $(POST_FLAGS)
%.o: %.cpp ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS)
%.o: %.cxx ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS)
%.o: %.cc ; $(CXX_CMD) $(CXXFLAGS) $(POST_FLAGS)
%.o: %.mm ; $(CXX_CMD) $(OBJCXXFLAGS) $(POST_FLAGS)
%.o: %.m ; $(CC_CMD) $(CFLAGS) -fmodules $(POST_FLAGS)
%.gch: %
@$(BIN_RM) -f $@
$(CXX_ENV) $(BIN_CXX) $(CPPFLAGS) $(CXXFLAGS) -x c++-header $<
.SECONDEXPANSION:
# Libraries contain all object files they depend on (but they may depend on other files)
# Not using libtool on OS X because it has an unsilenceable warning about a
# compatibility issue with BSD 4.3 (wtf)
lib%.a: $$($$*_OBJ)
@$(BIN_MKDIR_P) $(dir $@)
$(BIN_AR) cru $@ $(filter %.o,$^)
$(BIN_RANLIB) $@
-include $(DEP)
endif

186
README.md
View File

@ -1,10 +1,113 @@
## arch1t3cht's Aegisub "fork"
Download release builds [here](https://github.com/arch1t3cht/Aegisub/releases), or the latest CI builds [here](https://github.com/arch1t3cht/Aegisub/actions).
The release page also has detailed list of all changes and new features. If you're interested in the technical details or want to compile yourself, read on.
### Don't we have enough Aegisub forks already??
We absolutely do, and I'm aware that adding another one [doesn't sound like](https://xkcd.com/927/) a [good idea on paper](https://cdn.discordapp.com/attachments/425357202963038208/1007103606421459004/unknown.png). However,
- None of the existing forks are completely satisfying at the moment:
- [wangqr's fork](https://github.com/wangqr/Aegisub) is actively maintained, but focussing more on stability. It's missing most of the modern features.
- [AegisubDC](https://github.com/Ristellise/AegisubDC) has the most modern features (in particular video-panning), but is Windows-only and not actively maintained anymore.
- [The TypesettingTools fork](https://github.com/TypesettingTools/Aegisub) is the one that will one day become the upstream version and builds relatively effortlessly on all operating systems, but at the moment it's not moving much. It's the base for this fork, and I hope to one day merge most of these additions into it.
- Only PR'ing the changes in here to various forks would cause even more chaos
- ~~I try to convince myself that this isn't really a "fork" in the traditional sense - one which aims to provide extended support and stability fixes. It's a collection of new feature additions which I built myself, together with some of the most important new features floating around other forks.~~ At this point it's probably too late to still be saying this. Still, the general mission hasn't changed. This fork collects new features and critical bugfixes, but won't be putting extra time into maintenance aspects like cleanup and refactors. Partly, this is also because any big refactors would make it harder to pull these changes into upstream repositories or future forks.
While this is usually also the version of Aegisub I'm currently using, I make no promises on stability. **Don't** use this version if you're just looking for any version of Aegisub - this is mostly intended for typesetting and other advanced usage.
### Organization
Being a collection of different feature additions, this repository consists of a set of branches for different features, so that they can easily be merged into other repositories. The [`feature`](https://github.com/arch1t3cht/Aegisub/tree/feature) branch merges together all the features I deem as currently usable. Due to the structure of the repository, I will be force-pushing to this branch and some of the individual branches very frequently, so they're not ideal for basing further branches on.
The `cibuilds` branch makes some CI builds of snapshots of `feature` at relevant points in time.
### Branch/Feature list
This list is for navigating the repository. Go to the [release page](https://github.com/arch1t3cht/Aegisub/releases) for a more structured changelog.
- [`folding`](https://github.com/arch1t3cht/Aegisub/tree/folding): Add the ability to visually group and collapse lines in the subtitle grid
- [`lua_api`](https://github.com/arch1t3cht/Aegisub/tree/lua_api): Add new functions to the Lua automation API, like controlling the selection or cursor in the text edit box
- [`vector_clip_actions`](https://github.com/arch1t3cht/Aegisub/tree/vector_clip_actions): Make the different modes of the vector clip tool (lines, bezier curves, adding points, etc) bindable to hotkeys
- [`color_picker_fix2`](https://github.com/arch1t3cht/Aegisub/tree/color_picker_fix2): Add an option (under "Interface") to restrict the color picker to the window, which fixes the color picker on Linux in a lot of cases.
- [`avisynth`](https://github.com/arch1t3cht/Aegisub/tree/avisynth): Reenable Avisynth support on Windows and enable Avisynth on Linux
- [`bestsource`](https://github.com/arch1t3cht/Aegisub/tree/bestsource): Add BestSource audio and video source. This source is slower than others by multiple orders of magnitude, but in exchange it can guarantee exact seeking.
- [`vapoursynth`](https://github.com/arch1t3cht/Aegisub/tree/vapoursynth): Add Vapoursynth audio and video source
- [`bugfixes`](https://github.com/arch1t3cht/Aegisub/tree/bugfixes): Various fixes necessary for compilation. Most branches are based on this.
- [`workarounds`](https://github.com/arch1t3cht/Aegisub/tree/workarounds): Same as `bugfixes`, but these are hacky fixes that probably shouldn't be pulled without more work.
- [`fixes`](https://github.com/arch1t3cht/Aegisub/tree/fixes): Miscellaneous bugfixes
- [`misc`](https://github.com/arch1t3cht/Aegisub/tree/misc): Other miscellaneous additions
- [`wangqr_gui`](https://github.com/arch1t3cht/Aegisub/tree/wangqr_gui): Merge wangqr's changes regarding the GUI. In particular, add high-DPI compatibility.
- [`misc_dc`](https://github.com/arch1t3cht/Aegisub/tree/misc_dc): Miscellaneous changes taken from AegisubDC
- [`xa2-ds`](https://github.com/arch1t3cht/Aegisub/tree/xa2-ds): Add XAudio2 backend and allow stereo playback for some other backends, by wangqr and Shinon.
- [`stereo`](https://github.com/arch1t3cht/Aegisub/tree/stereo): Add multi-channel support for the other audio backends where possible.
- [`video_panning_option`](https://github.com/arch1t3cht/Aegisub/tree/video_panning_option): Merge [moex3's video zoom and panning](https://github.com/TypesettingTools/Aegisub/pull/150), with several bugfixes and more options to control zoom behavior
- [`spectrum-frequency-mapping`](https://github.com/arch1t3cht/Aegisub/tree/spectrum-frequency-mapping): Merge EleonoreMizo's [spectrum display improvements](https://github.com/TypesettingTools/Aegisub/pull/94), and also make Shift+Scroll vertically zoom the audio display
- [`wangqr_time_video`](https://github.com/arch1t3cht/Aegisub/tree/wangqr_time_video): Merge wangqr's feature adding a tool for timing subtitles to changes in the video
### Troubleshooting
I'll gladly take any bug reports, but if you encounter an issue, please check first if it occurs only on my fork, or also on [earlier TSTools builds](https://github.com/TypesettingTools/Aegisub/actions).
If it wasn't introduced by my fork, I can still take a look, but I can't promise anything.
You can find me for support on various servers, including the cave and the TSTools server linked below.
#### Aegisub on Linux doesn't recognize my GTK theme
This is probably because you're building with wxgtk2. Building with wxgtk3 fixes this, but causes some problems of its own (notably the broken color picker, occasional crashes when opening file dialogs from automation scripts, and general layouting issues).
The exact way of switching depends on your Linux distribution, but essentially you need to ensure that `wx-config` or the next best variant of it points to wxgtk3. If it points to wxgtk2 by default and deinstalling wxgtk2 isn't an option, you can also temporarily move it out of the path or use a `native-file` in your meson project. Then, fully reconfigure meson using `meson configure --clearcache` and `meson setup --reconfigure`.
#### The video is desynced / Frames don't appear at the right time
This is probably due to the ffms2 seeking bug ([#394](https://github.com/FFMS/ffms2/issues/394)). On Windows, this specific regression shouldn't happen anymore. On Linux, you need to install the latest git version of ffms2 - for example the [`ffms2-git`](https://aur.archlinux.org/packages/ffms2-git) AUR package on Arch linux, or just compile it yourself.
If it's not because of this particular bug, you can also try an alternative video source like LSMASHSource via Avisynth or Vapoursynth, or BestSource.
#### On Windows: Aegisub crashes whenever I open a video
If you're compiling yourself, try adding `--force-fallback-for=zlib` to the meson options.
### Compilation
If you're just looking to install Aegisub, you might want to check out the [releases page](https://github.com/arch1t3cht/Aegisub/releases) or the [CI builds](https://github.com/arch1t3cht/Aegisub/actions) first.
For compilation on Windows, see the TSTools documentation below. Also check the [GitHub workflow](https://github.com/arch1t3cht/Aegisub/blob/cibuilds/.github/workflows/ci.yml) for the project arguments.
On Arch Linux, there is an AUR package called [aegisub-arch1t3cht-git](https://aur.archlinux.org/packages/aegisub-arch1t3cht-git). It's not maintained by me but seems to work.
On other Linux distributions or for manual compilation you can use this package or the [TSTools PKGBUILD](https://aur.archlinux.org/packages/aegisub-ttools-meson-git) as a reference, in particular for installing the necessary dependencies if you don't want to compile them yourself.
If all dependencies are installed:
- Install Meson
- Clone the repository
- In the repository, run `meson setup build --buildtype=release` for the default configuration. See below for further options.
- `cd` to the `build` directory and run `ninja`
- You'll get an `aegisub` binary in the `build` folder. To install it to a system-wide location, run `ninja install`. To install to `/usr` instead of `/usr/local`, pass `--prefix=/usr` when configuring or reconfiguring meson.
- When recompiling after pulling new commits, skip the `meson setup` setup and just immediately run `ninja` from the build directory - even when the build configuration changed.
#### Compilation flags
Some features are not enabled by default. To enable them, pass `-D<feature>=enabled` with the `meson setup` command:
- `-Davisynth=enabled`: Avisynth support
- `-Dbestsource=enabled`: BestSource
- `-Dvapoursynth=enabled`: Vapoursynth support
You can also disable options that are active by default in the same way. Check the file `meson_options.txt` for all options.
To change the options of an existing build directory, run `meson setup --reconfigure <new arguments>` from inside the `build` directory.
### Dependencies
Apart from the dependencies for the TSTools version, there are some additional dependencies. These are cloned and compiled from scratch if not found, but you might want to install binaries instead:
- `jansson`: For BestSource
- `ffmpeg`: Becomes a direct dependency when compiling with BestSource
- `avisynth` (or `avisynthplus`): Optional run-time dependency for the Avisynth source
- `vapoursynth`: Optional run-time dependency for the VapourSynth source
The following VapourSynth plugins are used by the default scripts set in the default configuration:
- [`lsmas`](https://github.com/AkarinVS/L-SMASH-Works): For LWLibavSource
- [`bas`](https://github.com/vapoursynth/bestaudiosource): For BestAudioSource
- [`wwxd`](https://github.com/dubhater/vapoursynth-wwxd) and [`scxvid`](https://github.com/dubhater/vapoursynth-scxvid) (depending on settings): For keyframe generation
# Aegisub
For binaries and general information [see the homepage](http://www.aegisub.org).
The bug tracker can be found at http://devel.aegisub.org.
The bug tracker can be found at https://github.com/Aegisub/Aegisub/issues.
Support is available on [the forums](http://forum.aegisub.org) or [on IRC](irc://irc.rizon.net/aegisub).
Support is available on [Discord](https://discord.com/invite/AZaVyPr) or [IRC](irc://irc.rizon.net/aegisub).
## Building Aegisub
@ -12,74 +115,59 @@ Support is available on [the forums](http://forum.aegisub.org) or [on IRC](irc:/
Prerequisites:
1. Visual Studio 2015 (the free Community edition is good enough)
1. Visual Studio (Community edition of any recent version is fine)
2. The June 2010 DirectX SDK (the final release before DirectSound was dropped)
3. [Yasm](http://yasm.tortall.net/) installed to somewhere on your path.
3. Python 3
4. Meson
5. CMake
6. Powershell execution policy set to Unrestricted
There are a few optional dependencies:
There are a few optional dependencies that must be installed and on your PATH:
1. msgfmt, to build the translations
2. WinRAR, to build the portable installer
3. InnoSetup, to build the regular installer
2. InnoSetup, to build the regular installer
3. 7zip, to build the regular installer
4. Moonscript, to build the regular installer
All other dependencies are either stored in the repository or are included as submodules.
Building:
1. Clone Aegisub's repository recursively to fetch it and all submodules: `git clone --recursive git@github.com:Aegisub/Aegisub.git` This will take quite a while and requires about 2.5 GB of disk space.
2. Open Aegisub.sln
3. Build the BuildTasks project.
4. Build the entire solution.
1. Clone Aegisub's repository: `git clone https://github.com/arch1t3cht/Aegisub.git`
2. From the Visual Studio "x64 Native Tools Command Prompt", generate the build directory: `meson build -Ddefault_library=static` (if building for release, add `--buildtype=release`)
3. Build with `cd build` and `ninja`
You should now have a `bin` directory in your Aegisub directory which contains `aegisub32d.exe`, along with a pile of other files.
You should now have a binary: `aegisub.exe`.
The Aegisub installer includes some files not built as part of Aegisub (such as Avisynth and VSFilter), so for a fully functional copy of Aegisub you now need to copy all of the files from an installed copy of Aegisub into your `bin` directory (and don't overwrite any of the files already there).
You'll also either need to copy the `automation` directory into the `bin` directory, or edit your automation search paths to include the `automation` directory in the source tree.
Installer:
After building the solution once, you'll want to switch to the Debug-MinDep configuration, which skips checking if the dependencies are out of date, as that takes a while.
You can generate the installer with `ninja win-installer` after a successful build. This assumes a working internet connection and installation of the optional dependencies.
You can generate the portable zip with `ninja win-portable` after a successful build.
### OS X
A vaguely recent version of Xcode and the corresponding command-line tools are required.
Nothing older than Xcode 5 has been tested recently, but it is likely that some later versions of Xcode 4 are good enough.
For personal usage, you can use homebrew to install almost all of Aegisub's dependencies:
For personal usage, you can use pip and homebrew to install almost all of Aegisub's dependencies:
brew install autoconf automake ffmpeg ffms2 fftw freetype fribidi gettext icu4c libass m4 pkg-config boost
brew install luajit --HEAD
brew link --force gettext
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
pip3 install meson
brew install cmake ninja pkg-config libass boost zlib ffms2 fftw hunspell
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
wxWidgets is located in vendor/wxWidgets, and can be built like so:
Once the dependencies are installed, build Aegisub with `meson build && meson compile -C build`.
CPPFLAGS="$CPPFLAGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1" \
./configure --disable-aboutdlg --disable-animatectrl --disable-aui --disable-any \
--disable-bannerwindow --disable-base64 --disable-calendar --disable-caret \
--disable-cmdline --disable-colourpicker --disable-compat28 --disable-config \
--disable-constraints --disable-datepick --disable-dctransform --disable-debugreport \
--disable-dialupman --disable-docview --disable-filehistory --disable-finddlg \
--disable-fs_archive --disable-fs_inet --disable-fs_zip --disable-fsvolume \
--disable-fswatcher --disable-gif --disable-help --disable-html --disable-ipc \
--disable-joystick --disable-jpeg --disable-largefile --disable-markup --disable-mdi \
--disable-mediactrl --disable-metafiles --disable-miniframe --disable-notifmsg \
--disable-numberdlg --disable-pcx --disable-pnm --disable-postscript \
--disable-prefseditor --disable-printarch --disable-progressdlg --disable-propgrid \
--disable-protocol --disable-protocols --disable-rearrangectrl --disable-ribbon \
--disable-richtext --disable-richtooltip --disable-snglinst --disable-sockets \
--disable-sockets --disable-sound --disable-splash --disable-splines \
--disable-std_iostreams --disable-svg --disable-tarstream --disable-tiff \
--disable-tipdlg --disable-tipwindow --disable-url --disable-webkit --disable-webview \
--disable-wizarddlg --disable-xrc \
--enable-geometry --enable-imaglist --enable-listctrl --enable-stc --with-cocoa \
--with-libpng=yes --with-macosx-version-min=10.9 \
--with-opengl \
--without-libjpeg --without-libtiff --without-regex \
&& make
#### Build dmg
Once the dependencies are installed, build Aegisub with `autoreconf && ./configure --with-wxdir=/path/to/Aegisub/vendor/wxWidgets && make && make osx-bundle`.
`autoreconf` should be skipped if you are building from a source tarball rather than `git`.
```bash
meson build_static -Ddefault_library=static -Dbuildtype=debugoptimized -Dbuild_osx_bundle=true -Dlocal_boost=true
meson compile -C build_static
meson test -C build_static --verbose
meson compile osx-bundle -C build_static
meson compile osx-build-dmg -C build_static
```
## Updating Moonscript

View File

@ -1,15 +0,0 @@
m4_include([m4macros/ac_agi.m4])
m4_include([m4macros/ac_flag.m4])
m4_include([m4macros/agi_find_libheader.m4])
m4_include([m4macros/ax_boost_base.m4])
m4_include([m4macros/ax_boost_chrono.m4])
m4_include([m4macros/ax_boost_filesystem.m4])
m4_include([m4macros/ax_boost_locale.m4])
m4_include([m4macros/ax_boost_regex.m4])
m4_include([m4macros/ax_boost_system.m4])
m4_include([m4macros/ax_boost_thread.m4])
m4_include([m4macros/ax_check_gl.m4])
m4_include([m4macros/ax_lang_compiler_ms.m4])
m4_include([m4macros/ax_pthread.m4])
m4_include([m4macros/check_gnu_make.m4])
m4_include([m4macros/wxwin.m4])

View File

@ -1,7 +0,0 @@
#!/bin/sh
set -e
echo Running autoreconf...
autoreconf -ivf "$@"
echo Now run ./configure and then make to build Aegisub

View File

@ -1,28 +0,0 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk
DATA_AUTOMATION := \
$(sort $(wildcard $(d)autoload/*)) \
$(sort $(wildcard $(d)demos/*)) \
$(sort $(wildcard $(d)include/*.lua)) \
$(sort $(wildcard $(d)include/aegisub/*))
DATA_AUTOMATION_REL := $(subst $(d),,$(DATA_AUTOMATION))
DATA_AUTOMATION_INSTALLED = $(addprefix $(DESTDIR)$(P_DATA)/automation/, $(DATA_AUTOMATION_REL))
$(DESTDIR)$(P_DATA)/automation/%: $(d)%
$(MKDIR_INSTALL)
aegisub-lua_OBJ := $(d)tests/aegisub.o $(TOP)lib/libaegisub.a $(TOP)lib/libluabins.a $(LIBS_LUA)
aegisub-lua_CPPFLAGS := $(CPPFLAGS_BOOST) $(CFLAGS_LUA) -I$(TOP)libaegisub/include -I$(TOP)src $(CXXFLAGS_WX)
aegisub-lua_LIBS := $(LIBS_WX) $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_PTHREAD)
PROGRAM += $(d)aegisub-lua
test-automation: $(PROGRAM)
eval `luarocks path`; cd $(TOP)automation; ./aegisub-lua tests/busted.lua -p 'moon' tests/modules
test: test-automation
install: $(DATA_AUTOMATION_INSTALLED)
include $(TOP)Makefile.target

View File

@ -0,0 +1,46 @@
local tr = aegisub.gettext
script_name = tr"Clean k tags"
script_description = tr"Remove double k tags"
script_author = "amoethyst"
script_version = "1.0"
local double_k = "^(.-{\\k[^}]-)(\\k.+)$"
-- if the first tag is K/kf this would break the timing for the previous timing
local expr = "^(.-){\\(ko?)([0-9.]+)[^}]-}([^{]-){\\[kK][fo]?([0-9.]+)[^}]-}( -{(\\[kK][fo]?)[0-9.]+[^}]-}.*)$"
function _special_k(subs, i)
line = subs[i]
before, after = line.text:match(double_k)
while after ~= nil do
line.text = before .. "}{" .. after
before, after = line.text:match(double_k)
end
before, tag, k1, between, k2, after = line.text:match(expr)
while after ~= nil do
line.text = before .. "{\\" .. tag .. tonumber(k1) + tonumber(k2) .. "}" .. between .. after
before, tag, k1, between, k2, after = line.text:match(expr)
end
return line
end
function special_k(subs, sel)
for _, i in ipairs(sel) do
ok, res = pcall(_special_k, subs, i)
if ok then
subs[i] = res
else
aegisub.log("error on line " .. i .. ": " .. line.text .. "\n")
aegisub.log(res .. "\n")
end
end
end
aegisub.register_macro(script_name, script_description, special_k)

View File

@ -0,0 +1,26 @@
local tr = aegisub.gettext
script_name = tr"driftfix"
script_description = tr"shift drifting lines"
script_author = "amoethyst"
script_version = "1.0"
function split_line(subs, sel)
local step = -200 -- drift step in milliseconds
local drift = step
for _, i in ipairs(sel) do
line = subs[i]
line.start_time = line.start_time + drift
line.end_time = line.end_time + drift
drift = drift + step
subs[i] = line
end
aegisub.set_undo_point(script_name)
end
aegisub.register_macro(script_name, script_description, split_line)

View File

@ -0,0 +1,175 @@
local tr = aegisub.gettext
script_name = tr"Duetto Meika"
script_description = tr"The ultimate tool for karaoke duets"
script_author = "amoethyst"
include("utils.lua")
function replace_style(line, style_name, style_string)
before_style, after_style = line.text:match("^(.-{[^}]-)\\?s:".. style_name .."(.*)$")
return before_style .. style_string .. after_style
end
function duetto(subs, sel)
styles = {}
-- create the style map
for _, line in ipairs(subs) do
if line.class == "style" then
styles[line.name] = line
end
end
-- duetto~
for _, i in ipairs(sel) do
line = subs[i]
current_style = styles[line.style]
-- match every `s:` marker
for style_name in line.text:gmatch("{[^}]*s:([^}\\]*)[^}]*}") do
if style_name ~= current_style.name then
style = styles[style_name]
-- build the tags to use the new style
style_string = ""
if current_style.color1 ~= style.color1 then
style_string = style_string .. "\\c" .. style.color1
end
if current_style.color2 ~= style.color2 then
style_string = style_string .. "\\2c" .. style.color2
end
if current_style.color3 ~= style.color3 then
style_string = style_string .. "\\3c" .. style.color3
end
if current_style.color4 ~= style.color4 then
style_string = style_string .. "\\4c" .. style.color4
end
-- set style
line.text = replace_style(line, style_name, style_string)
current_style = style
else
-- remove marker to not break everything
line.text = replace_style(line, style_name, "")
end
end
subs[i] = line
end
aegisub.set_undo_point(script_name)
end
function test_colors(c1, c2)
return color_from_style(c1) == color_from_style(c2)
end
function get_script_style(style, styles)
for key, script_style in pairs(styles) do
if (test_colors(style.color1, script_style.color1)
and test_colors(style.color2, script_style.color2)
and test_colors(style.color3, script_style.color3)
and test_colors(style.color4, script_style.color4)
and tonumber(style.fontsize) == tonumber(script_style.fontsize)
and style.fontname == script_style.fontname) then
return script_style
end
end
return nil
end
function deduetto_meika(subs, sel)
local styles = {}
local last_style = -1
-- create the style map
for i, line in ipairs(subs) do
if line.class == "style" then
styles[line.name] = line
last_style = i
end
end
local new_styles = {}
for _, i in ipairs(sel) do
local line = subs[i]
local current_style = table.copy(styles[line.style])
local search_index = 1
while search_index < #line.text do
local match_start, match_end = line.text:find("{[^}]*}", search_index)
if match_start == nil then
break
end
local bracketed = line.text:sub(match_start, match_end)
local new_style = false
-- change style's colors
for tag, value in bracketed:gmatch("\\([1-4]?c)([^}\\]*)") do
new_style = true
if tag == "c" or tag == "1c" then
current_style.color1 = value
elseif tag == "2c" then
current_style.color2 = value
elseif tag == "3c" then
current_style.color3 = value
elseif tag == "4c" then
current_style.color4 = value
end
end
-- change style's font
for tag, value in bracketed:gmatch("\\(f[sn])([^}\\]*)") do
new_style = true
if tag == "fs" then
current_style.fontsize = value
elseif tag == "fn" then
current_style.fontname = value
end
end
if new_style then
local script_style = get_script_style(current_style, styles)
if script_style == nil then
if get_script_style(current_style, new_styles) == nil then
new_styles[#new_styles+1] = table.copy(current_style)
end
else
-- remove inline colors
bracketed = bracketed:gsub("\\[1-4]?c[^\\}]*", "")
bracketed = bracketed:gsub("\\[1-4]?a[^\\}]*", "")
-- remove inline fonts
bracketed = bracketed:gsub("\\f[sn][^\\}]*", "")
-- add style marker
bracketed = "{s:" .. script_style.name .. bracketed:sub(2, #bracketed)
line.text = line.text:sub(1, match_start-1) .. bracketed .. line.text:sub(match_end + 1, #line.text)
end
end
search_index = match_start + 1
end
subs[i] = line
end
if #new_styles > 0 then
for i, new_style in ipairs(new_styles) do
new_style.name = "Deduetto style " .. i
subs.insert(last_style, new_style)
last_style = last_style + 1
aegisub.log("Created new style: " .. new_style.name .. "\n")
end
end
end
aegisub.register_macro(script_name, script_description, duetto)
aegisub.register_macro(tr"Deduetto Meika", tr"Create styles from inline color tags", deduetto_meika)

View File

@ -0,0 +1,176 @@
local tr = aegisub.gettext
script_name = tr"Karaoke 1sec adjust lead-in"
script_description = tr"Adjust karaoke leadin to 1sec"
script_author = "Flore"
script_version = "1.00"
include("cleantags.lua")
leadinmsec = 1000 --lead in time can be changed here
ktag = "\\[kK][fo]?%d+" --pattern used to detect karaoke tags
-- KM template line definition
km_template_effect = "template pre-line all keeptags"
km_template_text = '!retime("line",$start < 900 and -$start or -900,200)!{!$start < 900 and "\\\\k" .. ($start/10) or "\\\\k90"!\\fad(!$start < 900 and $start or 300!,200)}'
function hasleadin(line)--check if there is an existing lead in (2 consecutive bracket with karaoke tags at the start of the line)
return line.text:find("^{[^{}]-" .. ktag .. "[^{}]-}%s*{[^{}]-" .. ktag .. "[^{}]-}")
end
function removeleadin(line)
if not hasleadin(line) then
return line
end
leadin = tonumber( line.text:match("^{[^{}]-\\[kK][fo]?(%d+)[^{}]-}%s*{[^{}]-" .. ktag .. "[^{}]-}") ) --read lead-in value
line.text = line.text:gsub("^({[^{}]-)\\[kK][fo]?%d+(.-}%s*{[^{}]-" .. ktag .. ".-})","%1%2") --remove lead in
line.text = cleantags(line.text) --clean tags
line.start_time = line.start_time + leadin*10 --adjust start time
--aegisub.log(line.text)
return line
end
function adjust_1sec(subs, sel)
for _, i in ipairs(sel) do
local line = subs[i]
line.text = cleantags(line.text)
if( line.text:find(ktag)) then--don't do anything if there is no ktags in this line
--start by removing existing lead-in
while hasleadin(line) do
if aegisub.progress.is_cancelled() then return end
line = removeleadin(line)
end
--then add our lead in
if line.start_time >= leadinmsec then
line.text = string.format("{\\k%d}%s",leadinmsec/10, line.text)
line.start_time = line.start_time - leadinmsec
else --if line starts too early to put the needed lead in, make the line start at time 0 and fill with appropriate lead in
line.text = string.format("{\\k%d}%s",line.start_time/10, line.text)
line.start_time = 0
end
subs[i] = line
end
end
aegisub.set_undo_point(tr"1sec adjust lead-in")
end
function remove_tag(line, tag)
local expr = "^(.-{[^}]*)\\" .. tag .. "[^\\}]*(.*)"
while true do
before, after = line.text:match(expr)
if before == nil then
return line
else
line.text = cleantags(before .. after)
end
end
end
function is_template_line(line)
return (line.class == "dialogue"
and line.effect == km_template_effect
and line.text == km_template_text)
end
function mugenizer(subs)
local first = nil
local styles_different = false
local styles = 0
local i_styles = {}
local template_present = false
for i, line in ipairs(subs) do
if line.class == "info" then
if line.key == "PlayResX" or line.key == "PlayResY" then
line.value = "0"
end
if line.key == "ScaledBorderAndShadow" then
line.value = "yes"
end
end
if line.class == "style" then
line.fontname = "Arial"
line.fontsize = "24"
line.outline = "1.5"
line.shadow = "0"
line.margin_l = "15"
line.margin_r = "15"
line.margin_t = "20"
line.margin_b = "20"
i_styles[styles] = i
if styles > 0 then
styles_different = styles_different or line.color1 ~= subs[i_styles[styles-1]].color1 or line.color2 ~= subs[i_styles[styles-1]].color2 or line.color3 ~= subs[i_styles[styles-1]].color3 or line.color4 ~= subs[i_styles[styles-1]].color4
end
styles = styles + 1
end
if is_template_line(line) then
line.comment = true
template_present = true
end
if line.class == "dialogue" and not line.comment and line.effect ~= "fx" then
if first == nil then
first = i
end
line.text = cleantags(line.text)
while hasleadin(line) do
if aegisub.progress.is_cancelled() then return end
line = removeleadin(line)
end
line = remove_tag(line, "fad")
end
subs[i] = line
end
if not styles_different then
for i = 0, styles-1, 1 do
line = subs[i_styles[i]]
line.color1 = "&H008AFF"
line.color2 = "&HFFFFFF"
line.color3 = "&H000000"
line.color4 = "&H000000"
subs[i_styles[i]] = line
end
end
if not template_present then
-- add mugen's magic line
line = subs[first]
line.comment = true
line.start_time = 0
line.end_time = 0
line.effect = km_template_effect
line.text = km_template_text
subs.insert(first, line)
end
end
aegisub.register_macro(script_name, script_description, adjust_1sec)
aegisub.register_macro(tr"Mugenizer", tr"Mugenize your subs", mugenizer)

View File

@ -0,0 +1,48 @@
local tr = aegisub.gettext
script_name = tr"Split karaoke line"
script_description = tr"Split line at {split} marker according to ktags"
script_author = "amoethyst"
script_version = "1.0"
function split_line(subs, sel)
function getduration(line)
d = 0
kduration = "{[^}]-\\[kK][fo]?(%d+)[^}]-}"
for match in line:gmatch(kduration) do
d = d + tonumber(match)
end
return d * 10
end
insertions = 0
for _, i in ipairs(sel) do
i = i + insertions
line1 = subs[i]
line2 = subs[i]
split_expr = "(.-)%s*{split}%s*(.*)"
line1.text, line2.text = line1.text:match(split_expr)
while line1.text ~= nil do
line1.end_time = line1.start_time + getduration(line1.text)
line2.start_time = line1.end_time
subs[i] = line1
i = i + 1
insertions = insertions + 1
subs.insert(i, line2)
line1 = subs[i]
line1.text, line2.text = line1.text:match(split_expr)
end
end
aegisub.set_undo_point(tr"Karaoke split")
end
aegisub.register_macro(script_name, script_description, split_line)

View File

@ -0,0 +1,39 @@
local tr = aegisub.gettext
script_name = tr"kf"
script_description = tr"add kf tag for 'long' syllables"
script_author = "amoethyst"
script_version = "1.0"
function split_line(subs, sel)
local expr_k = "(.-{[^}]*\\)[kK][of]?(%d+)([^{]*)"
local before, after, dur, text
for _, i in ipairs(sel) do
line = subs[i]
-- replace k tags
text = ""
for before, dur, after in line.text:gmatch(expr_k) do
if before == nil then
break
else
if tonumber(dur) >= 90 then
text = text .. before .. "kf" .. dur .. after
else
text = text .. before .. "k" .. dur .. after
end
end
end
if text ~= "" then
line.text = text
subs[i] = line
end
end
aegisub.set_undo_point(script_name)
end
aegisub.register_macro(script_name, script_description, split_line)

View File

@ -0,0 +1,43 @@
local tr = aegisub.gettext
script_name = tr"unkf"
script_description = tr"replace kf/ko tags in selected lines by regular k tags"
script_author = "amoethyst"
script_version = "1.0"
function split_line(subs, sel)
local expr_kof = "^(.-{[^}]*\\k)[of](.*)$"
local expr_K = "^(.-{[^}]*\\)K(.*)$"
local before, after
for _, i in ipairs(sel) do
line = subs[i]
-- replace ko and kf tags
while true do
before, after = line.text:match(expr_kof)
if before == nil then
break
else
line.text = before .. after
end
end
-- replace K tags
while true do
before, after = line.text:match(expr_K)
if before == nil then
break
else
line.text = before .. "k" .. after
end
end
subs[i] = line
end
aegisub.set_undo_point(script_name)
end
aegisub.register_macro(script_name, script_description, split_line)

View File

@ -0,0 +1,55 @@
local tr = aegisub.gettext
script_name = tr"Nihongo wa muzukashii"
script_description = tr"Turn your \"o e\"s into \"wo he\"s"
script_author = "amoethyst"
script_version = "1.0"
function wohe(subs, sel)
-- "Unfortunately Lua patterns do not support this, only single characters can be repeated or chosen between, not sub-patterns or strings"
-- well, fuck
local exprs = {
"^(.* {[^}]*})([oe])({[^}]*} .*)$",
"^(.* )([oe])({[^}]*} .*)$",
"^(.* {[^}]*})([oe])( .*)$",
"^(.* )([oe])( .*)$",
"^()([oe])( .*)$",
}
for _, i in ipairs(sel) do
line = subs[i]
line.text = line.text .. " "
for _, expr in ipairs(exprs) do
local before, o_or_e, after = line.text:match(expr)
while o_or_e ~= nil do
line.text = ""
if before ~= nil then
line.text = before
end
if o_or_e == "o" then
line.text = line.text .. "wo"
else
line.text = line.text .. "he"
end
if after ~= nil then
line.text = line.text .. after
end
before, o_or_e, after = line.text:match(expr)
end
end
line.text = line.text:gsub(" $", "")
subs[i] = line
end
end
aegisub.register_macro(script_name, script_description, wohe)

View File

@ -0,0 +1,14 @@
# Copy files to build directory for testing purposes
lua_files = files(
'argcheck.moon',
'clipboard.lua',
'ffi.moon',
'lfs.moon',
're.moon',
'unicode.moon',
'util.moon',
)
foreach f: lua_files
configure_file(input: f, output: '@PLAINNAME@', copy: true)
endforeach

View File

@ -39,7 +39,7 @@ search = (re, str, start) ->
res = regex.search re, str, str\len(), start
return unless res != nil
first, last = res[0], res[1]
ffi.C.free res
ffi.gc(res, ffi.C.free)
first, last
replace = (re, replacement, str, max_count) ->

View File

@ -23,10 +23,10 @@ OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
]]
cleantags_version = "1.301"
cleantags_modified = "13 November 2009"
cleantags_version = "1.302"
cleantags_modified = "12 October 2023"
ktag = "\\[kK][fo]?%d+"
ktag = "\\[kK][fo]?[%d.]+"
--[[ The main function that performs the cleaning up
Takes: text

View File

@ -0,0 +1,20 @@
# Copy files to build directory for testing purposes
lua_files = files(
'cleantags.lua',
'clipboard.lua',
'karaskel-auto4.lua',
'karaskel.lua',
'lfs.lua',
'moonscript.lua',
're.lua',
'unicode.lua',
'unicode-monkeypatch.lua',
'utils-auto4.lua',
'utils.lua',
)
foreach f: lua_files
configure_file(input: f, output: '@PLAINNAME@', copy: true)
endforeach
subdir('aegisub')

View File

@ -0,0 +1,133 @@
local ffi = require("ffi")
if ffi.os ~= "Windows" then
return
end
-- Safety first!
do
if pcall(string.dump, io.open) then
error("io.open is already patched!")
end
local function index(t, k)
return t[k]
end
if pcall(index, ffi.C, "GetACP") == false then
ffi.cdef[[
uint32_t __stdcall GetACP();
]]
end
end
local CP_UTF8 = 65001
local MB_ERR_INVALID_CHARS = 8
if ffi.C.GetACP() == CP_UTF8 then
-- "Use Unicode UTF-8 for worldwide language support" is ticked.
-- Don't bother patching it.
return
end
ffi.cdef[[
int32_t __stdcall MultiByteToWideChar(
uint32_t CodePage,
uint32_t dwFlags,
const char *lpMultiByteStr,
int32_t cbMultiByte,
wchar_t *lpWideCharStr,
int32_t cchWideChar
);
void *_wfreopen(wchar_t *path, wchar_t *mode, void *file);
int32_t _wrename(wchar_t *oldname, wchar_t *newname);
int32_t _wremove(wchar_t *path);
int32_t _wsystem(wchar_t *command);
char *strerror(int errnum);
]]
local function widen(ch)
local size = ffi.C.MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, ch, #ch, nil, 0)
if size == 0 then
error(fname .. ": invalid character sequence")
end
local buf = ffi.new("wchar_t[?]", size + 1)
if ffi.C.MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, ch, #ch, buf, size) == 0 then
error(fname .. ": char conversion error")
end
return buf
end
local function fileresult(stat, fname)
if stat == 0 then
return true
end
local errno = ffi.errno()
local msg = ffi.C.strerror(errno)
if fname then
return nil, fname .. ": " .. ffi.string(msg), errno
end
return nil, msg, errno
end
local function execresult(stat)
if stat == -1 then
return fileresult(0, nil)
end
if stat == 0 then
return true, "exit", stat
end
return nil, "exit", stat
end
local orig_open = io.open
local orig_rename = os.rename
local orig_remove = os.remove
local orig_execute = os.execute
function io.open(fname, mode)
local wfname = widen(fname)
if not mode then
mode = "r"
end
local wmode = widen(mode)
local file = assert(orig_open("nul", "rb"))
if ffi.C._wfreopen(wfname, wmode, file) == nil then
local msg, errno = select(2, file:close())
return nil, fname .. ": " .. tostring(msg), errno
end
return file
end
function os.rename(oldname, newname)
local woldname = widen(oldname)
local wnewname = widen(newname)
local stat = ffi.C._wrename(woldname, wnewname)
return fileresult(stat, oldname)
end
function os.remove(fname)
local wfname = widen(fname)
local stat = ffi.C._wremove(wfname)
return fileresult(stat, fname)
end
function os.execute(command)
local wcommand = command
if command then
wcommand = widen(command)
local stat = ffi.C._wsystem(wcommand)
return execresult(stat)
end
return true
end

56
automation/meson.build Normal file
View File

@ -0,0 +1,56 @@
subdir('include')
subdir('vapoursynth')
automation_dir = dataroot / 'automation'
install_data(
'autoload/clean-k-tags.lua',
'autoload/cleantags-autoload.lua',
'autoload/driftfix.lua',
'autoload/duetto-meika.lua',
'autoload/karaoke-adjust-1sec.lua',
'autoload/karaoke-auto-leadin.lua',
'autoload/karaoke-split.lua',
'autoload/kara-templater.lua',
'autoload/kf.lua',
'autoload/macro-1-edgeblur.lua',
'autoload/macro-2-mkfullwitdh.lua',
'autoload/select-overlaps.moon',
'autoload/strip-tags.lua',
'autoload/unkf.lua',
'autoload/wohe.lua',
install_dir: automation_dir / 'autoload')
install_data(
'demos/future-windy-blur.lua',
'demos/raytracer.lua',
'demos/raytracer-test1.ass',
install_dir: automation_dir / 'demos')
install_data(
'include/cleantags.lua',
'include/clipboard.lua',
'include/karaskel-auto4.lua',
'include/karaskel.lua',
'include/lfs.lua',
'include/moonscript.lua',
'include/re.lua',
'include/unicode.lua',
'include/unicode-monkeypatch.lua',
'include/utils-auto4.lua',
'include/utils.lua',
install_dir: automation_dir / 'include')
install_data(
'include/aegisub/argcheck.moon',
'include/aegisub/clipboard.lua',
'include/aegisub/ffi.moon',
'include/aegisub/lfs.moon',
'include/aegisub/re.moon',
'include/aegisub/unicode.moon',
'include/aegisub/util.moon',
install_dir: automation_dir / 'include' / 'aegisub')
install_data(
'vapoursynth/aegisub_vs.py',
install_dir: automation_dir / 'vapoursynth')

View File

@ -0,0 +1,93 @@
Video Frame functions in Automation 4
This file describes the interface used for reading frames from loaded videos.
---
Get a specific frame from the currently loaded video on which multiple other
functions are defined.
function aegisub.get_frame(frame_number, withSubtitles)
@frame_number (number)
Number of frame to retrieve.
@withSubtitles (boolean)
Optional. Whether to load with subtitles drawn on to the frame.
Returns: frame (userdata)
The frame object defines multiple other functions. See below.
---
Get width of frame object.
function frame:width()
Returns: number
Width in pixels.
---
Get height of frame object.
function frame:height()
Returns: number
Height in pixels.
---
Get RGB pixel value at a certain position of frame object.
function frame:getPixel(x, y)
@x (number)
Pixel to retrieve on the x-axis
@y (number)
Pixel to retrieve on the y-axis
Returns: 3 values, all numbers
1. R value of the pixel
2. G value of the pixel
3. B value of the pixel
---
Get ASS formated pixel value at a certain position of frame object.
function frame:getPixelFormatted(x, y)
@x (number)
Pixel to retrieve on the x-axis
@y (number)
Pixel to retrieve on the y-axis
Returns: string
String in ASS format representing the pixel value. e.g. "&H0073FF&"
---
Get raw BGRA (alpha being irrelevant) data of frame object, whose pixel values
can then be accessed via LuaJIT's FFI.
The frame data is valid until the frame object is garbage-collected.
Example usage (which does not account for flipped frames for simplicity)
data, pitch = frame:data()
buf = require("ffi").cast("unsigned char *", data)
-- Get the R value of the pixel at coordinates (42, 34)
pix_val = buf[34 * pitch + 4 * 42 + 2]
function frame:data()
Returns: 3 values - a lightuserdata, a number, and a boolean
1. Lightuserdata object which can be cast to "unsigned char *" via ffi.cast, a pointer
to the raw frame data.
2. The pitch of the frame data.
3. Whether the frame is flipped upside-down.
---

View File

@ -0,0 +1,66 @@
Automation 4 Gui Functions
This document describes the available Automation 4 functions for
controlling the editor's graphical interface. These all reside in the
table aegisub.gui .
---
Getting and setting the selection and cursor in the text edit box
This set of functions controls the selection in the text edit box.
All indices are counted starting from 1, following Lua conventions.
The setter functions are applied after all subtitle changes have been
applied. Only the latest update is applied.
The getter functions return the state after the latest update by
the setter functions, or the original state if there were none.
function aegisub.gui.get_cursor()
Returns: 1 number
1. The position of the cursor in the text edit field.
---
function aegisub.gui.get_selection()
Returns: 2 values, all numbers.
1. Starting position of the selection.
2. Ending position of the selection, always larger or equal
than the stating position.
---
function aegisub.gui.set_cursor(position)
@position (number)
The new position of the cursor.
Returns: 0 values
---
function aegisub.gui.set_selection(start, end)
@start (number)
The new start of the selection.
@end (number)
The new end of the selection, i.e. where the cursor will be.
Can be smaller than the start, in which case the cursor will
be on the left side of the selection.
Returns: 0 values
---
Determining whether there are unsaved changes
function aegisub.gui.is_modified()
Returns: 1 boolean
1. Whether the current file has unsaved changes.
---

View File

@ -0,0 +1,325 @@
"""
Utility functions for loading video files into Aegisub using the VapourSynth
video provider.
When encountering a file whose file extension is not .py or .vpy, the
VapourSynth audio and video providers will execute the respective default
script set in Aegisub's configuration, with the following string variables set:
- filename: The path to the file that's being opened.
- __aegi_data, __aegi_dictionary, __aegi_local, __aegi_script, __aegi_temp, __aegi_user:
The values of ?data, ?dictionary, etc. respectively.
- __aegi_vscache: The path to a directory where the VapourSynth script can
store cache files. This directory is cleaned by Aegisub when it gets too
large (as defined by Aegisub's configuration).
The provider reads the video from the script's 0-th output node. By default,
the video is assumed to be CFR. The script can pass further information to
Aegisub using the following variables:
- __aegi_timecodes: List[int] | str: The timecodes for the video, or the
path to a timecodes file.
- __aegi_keyframes: List[int] | str: List of frame numbers to load as
keyframes, or the path to a keyframes file.
- __aegi_hasaudio: int: If nonzero, Aegisub will try to load an audio track
from the same file.
The script can control the progress dialog shown by Aegisub with certain log
messages. Check the functions defined below for more information.
This module provides some utility functions to obtain timecodes, keyframes, and
other data.
"""
import os
import os.path
import re
from enum import Enum
from collections import deque
from typing import Any, Dict, List, Tuple, Callable
import vapoursynth as vs
core = vs.core
aegi_vscache: str = ""
aegi_vsplugins: str = ""
plugin_extension = ".dll" if os.name == "nt" else ".so"
def progress_set_message(message: str):
"""
Sets the message of Aegisub's progress dialog.
"""
vs.core.log_message(vs.MESSAGE_TYPE_DEBUG, f"__aegi_set_message,{message}")
def progress_set_progress(percent: float):
"""
Sets the progress shown in Aegisub's progress dialog to
the given percentage.
"""
vs.core.log_message(vs.MESSAGE_TYPE_DEBUG, f"__aegi_set_progress,{percent}")
def progress_set_indeterminate():
"""
Sets Aegisub's progress dialog to show indeterminate progress.
"""
vs.core.log_message(vs.MESSAGE_TYPE_DEBUG, f"__aegi_set_indeterminate,")
def set_paths(vars: dict):
"""
Initialize the wrapper library with the given configuration directories.
Should usually be called at the start of the default script as
set_paths(globals())
"""
global aegi_vscache
global aegi_vsplugins
aegi_vscache = vars["__aegi_vscache"]
aegi_vsplugins = vars["__aegi_vsplugins"]
def ensure_plugin(name: str, loadname: str, errormsg: str):
"""
Ensures that the VapourSynth plugin with the given name exists.
If it doesn't, it tries to load it from `loadname`.
If that fails, it raises an error with the given error message.
"""
if hasattr(core, name):
return
if aegi_vsplugins and loadname:
try:
core.std.LoadPlugin(os.path.join(aegi_vsplugins, loadname + plugin_extension))
if hasattr(core, name):
return
except vs.Error:
pass
raise vs.Error(errormsg)
def make_lwi_cache_filename(filename: str) -> str:
"""
Given a path to a video, will return a file name like the one LWLibavSource
would use for a .lwi file.
"""
max_len = 254
extension = ".lwi"
if len(filename) + len(extension) > max_len:
filename = filename[-(max_len + len(extension)):]
return "".join(("_" if c in "/\\:" else c) for c in filename) + extension
def make_keyframes_filename(filename: str) -> str:
"""
Given a path `path/to/file.mkv`, will return the path
`path/to/file_keyframes.txt`.
"""
extlen = filename[::-1].find(".") + 1
return filename[:len(filename) - extlen] + "_keyframes.txt"
lwindex_re1 = re.compile(r"Index=(?P<Index>-?[0-9]+),POS=(?P<POS>-?[0-9]+),PTS=(?P<PTS>-?[0-9]+),DTS=(?P<DTS>-?[0-9]+),EDI=(?P<EDI>-?[0-9]+)")
lwindex_re2 = re.compile(r"Key=(?P<Key>-?[0-9]+),Pic=(?P<Pic>-?[0-9]+),POC=(?P<POC>-?[0-9]+),Repeat=(?P<Repeat>-?[0-9]+),Field=(?P<Field>-?[0-9]+)")
streaminfo_re = re.compile(r"Codec=(?P<Codec>[0-9]+),TimeBase=(?P<TimeBase>[0-9\/]+),Width=(?P<Width>[0-9]+),Height=(?P<Height>[0-9]+),Format=(?P<Format>[0-9a-zA-Z]+),ColorSpace=(?P<ColorSpace>[0-9]+)")
videoindex_re = re.compile(r"<ActiveVideoStreamIndex>(?P<VideoStreamIndex>[0-9+]+)</ActiveVideoStreamIndex>")
class LWIndexFrame:
pts: int
key: int
index: int
def __init__(self, raw: list[str]):
match1 = lwindex_re1.match(raw[0])
match2 = lwindex_re2.match(raw[1])
if not match1 or not match2:
raise ValueError("Invalid lwindex format")
self.index = int(match1.group("Index"))
self.pts = int(match1.group("PTS"))
self.key = int(match2.group("Key"))
def __int__(self) -> int:
return self.pts
def info_from_lwindex(indexfile: str) -> Dict[str, List[int]]:
"""
Given a path to an .lwi file, will return a dictionary containing
information about the video, with the keys
- timcodes: The timecodes.
- keyframes: Array of frame numbers of keyframes.
"""
with open(indexfile, encoding="latin1") as f:
index = f.read().splitlines()
videoindex_str = next(l for l in index if l.startswith("<ActiveVideoStreamIndex>"))
videoindex_match = videoindex_re.match(videoindex_str)
if not videoindex_match:
raise ValueError("Invalid lwindex format: Invalid ActiveVideoStreamIndex line")
videoindex = int(videoindex_match.group("VideoStreamIndex"))
# The picture list starts after the last </StreamInfo> tag
indexstart, indexend = (len(index) - index[::-1].index("</StreamInfo>")), index.index("</LibavReaderIndex>")
frames = [LWIndexFrame(index[i:i+2]) for i in range(indexstart, indexend, 2)]
frames = [f for f in frames if f.index == videoindex] # select the first stream
frames.sort(key=int)
streaminfo = streaminfo_re.match(index[index.index(f"<StreamInfo={videoindex},0>") + 1]) # info of first stream
if not streaminfo:
raise ValueError("Invalid lwindex format")
timebase_num, timebase_den = [int(i) for i in streaminfo.group("TimeBase").split("/")]
return {
"timecodes": [(f.pts * 1000 * timebase_num) // timebase_den for f in frames],
"keyframes": [i for i, f in enumerate(frames) if f.key],
}
def wrap_lwlibavsource(filename: str, cachedir: str | None = None, **kwargs: Any) -> Tuple[vs.VideoNode, Dict[str, List[int]]]:
"""
Given a path to a video file and a directory to store index files in
(usually __aegi_vscache), will open the video with LWLibavSource and read
the generated .lwi file to obtain the timecodes and keyframes.
Additional keyword arguments are passed on to LWLibavSource.
"""
if cachedir is None:
cachedir = aegi_vscache
os.makedirs(cachedir, exist_ok=True)
cachefile = os.path.join(cachedir, make_lwi_cache_filename(filename))
progress_set_message("Loading video file")
progress_set_indeterminate()
ensure_plugin("lsmas", "libvslsmashsource", "To use Aegisub's LWLibavSource wrapper, the `lsmas` plugin for VapourSynth must be installed")
if b"-Dcachedir" not in core.lsmas.Version()["config"]: # type: ignore
raise vs.Error("To use Aegisub's LWLibavSource wrapper, the `lsmas` plugin must support the `cachedir` option for LWLibavSource.")
clip = core.lsmas.LWLibavSource(source=filename, cachefile=cachefile, **kwargs)
progress_set_message("Getting timecodes and keyframes from the index file")
return clip, info_from_lwindex(cachefile)
def make_keyframes(clip: vs.VideoNode, use_scxvid: bool = False,
resize_h: int = 360, resize_format: int = vs.GRAY8,
**kwargs: Any) -> List[int]:
"""
Generates a list of keyframes from a clip, using either WWXD or Scxvid.
:param clip: Clip to process.
:param use_scxvid: Whether to use Scxvid. If False, the function uses WWXD.
:param resize_h: Height to resize the clip to before processing.
:param resize_format: Format to convert the clip to before processing.
The remaining keyword arguments are passed on to the respective filter.
"""
progress_set_message("Generating keyframes")
progress_set_progress(1)
clip = core.resize.Bilinear(clip, width=resize_h * clip.width // clip.height, height=resize_h, format=resize_format)
if use_scxvid:
ensure_plugin("scxvid", "libscxvid", "To use the keyframe generation, the scxvid plugin for VapourSynth must be installed")
clip = core.scxvid.Scxvid(clip, **kwargs)
else:
ensure_plugin("wwxd", "libwwxd64", "To use the keyframe generation, the wwxdplugin for VapourSynth must be installed")
clip = core.wwxd.WWXD(clip, **kwargs)
keyframes = {}
done = 0
def _cb(n: int, f: vs.VideoFrame) -> vs.VideoFrame:
nonlocal done
keyframes[n] = f.props._SceneChangePrev if use_scxvid else f.props.Scenechange # type: ignore
done += 1
if done % (clip.num_frames // 200) == 0:
progress_set_progress(100 * done / clip.num_frames)
return f
deque(clip.std.ModifyFrame(clip, _cb).frames(close=True), 0)
progress_set_progress(100)
return [n for n in range(clip.num_frames) if keyframes[n]]
def save_keyframes(filename: str, keyframes: List[int]):
"""
Saves a list of keyframes in Aegisub's keyframe format v1 to a file with
the given filename.
"""
with open(filename, "w") as f:
f.write("# keyframe format v1\n")
f.write("fps 0\n")
f.write("".join(f"{n}\n" for n in keyframes))
class GenKeyframesMode(Enum):
NEVER = 0
ALWAYS = 1
ASK = 2
def ask_gen_keyframes(_: str) -> bool:
from tkinter.messagebox import askyesno
progress_set_message("Asking whether to generate keyframes")
progress_set_indeterminate()
result = askyesno("Generate Keyframes", \
"No keyframes file was found for this video file.\nShould Aegisub detect keyframes from the video?\nThis will take a while.", default="no")
progress_set_message("")
return result
def get_keyframes(filename: str, clip: vs.VideoNode, fallback: str | List[int],
generate: GenKeyframesMode = GenKeyframesMode.ASK,
ask_callback: Callable = ask_gen_keyframes, **kwargs: Any) -> str | List[int]:
"""
Looks for a keyframes file for the given filename.
If no file was found, this function can generate a keyframe file for the given clip next
to the given filename using WWXD or Scxvid (see the make_keyframes docstring).
Whether or not keyframes are generated depends on the `generate` argument.
Depending on the `generate` argument, the function will
- always generate keyframes when no file was found
- never generate keyframes when no file was found
(and return the fallback keyframes instead)
- show a dialog to ask the user whether keyframes should be
generated or not
Additional keyword arguments are passed on to make_keyframes.
"""
progress_set_message("Looking for keyframes")
progress_set_indeterminate()
kffilename = make_keyframes_filename(filename)
if not os.path.exists(kffilename):
if generate == GenKeyframesMode.NEVER:
return fallback
if generate == GenKeyframesMode.ASK and not ask_callback(filename):
return fallback
keyframes = make_keyframes(clip, **kwargs)
save_keyframes(kffilename, keyframes)
return kffilename
def check_audio(filename: str, **kwargs: Any) -> bool:
"""
Checks whether the given file has an audio track by trying to open it with
BestSource. Requires the `bs` plugin to return correct results, but
won't crash if it's not installed.
Additional keyword arguments are passed on to BestSource.
"""
progress_set_message("Checking if the file has an audio track")
progress_set_indeterminate()
try:
ensure_plugin("bs", "BestSource", "")
vs.core.bs.AudioSource(source=filename, **kwargs)
return True
except AttributeError:
pass
except vs.Error:
pass
return False

View File

@ -0,0 +1,8 @@
# Copy files to build directory for testing purposes
vs_files = files(
'aegisub_vs.py',
)
foreach f: vs_files
configure_file(input: f, output: '@PLAINNAME@', copy: true)
endforeach

View File

@ -1,163 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2011 Niels Martin Hansen
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/
-->
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Build credit text -->
<ItemDefinitionGroup Condition="'$(AegisubBuildCredit)'==''">
<ClCompile>
<PreprocessorDefinitions>BUILD_CREDIT="$(AegisubBuildCredit)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- Update checker -->
<ItemDefinitionGroup Condition="'$(AegisubUseUpdateChecker)'=='true'">
<ClCompile>
<PreprocessorDefinitions>
WITH_UPDATE_CHECKER;
UPDATE_CHECKER_SERVER="$(UpdateCheckerServer)";
UPDATE_CHECKER_BASE_URL="$(UpdateCheckerURL)";
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- Hunspell support -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>WITH_HUNSPELL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(AegisubContribBase)hunspell\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<!-- CSRI helper library support -->
<ItemDefinitionGroup Condition="'$(AegisubUseCsri)'=='HelperLibrary'">
<ClCompile>
<PreprocessorDefinitions>WITH_CSRI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- CSRI external library support -->
<ItemDefinitionGroup Condition="'$(AegisubUseCsri)'=='External'">
<ClCompile>
<PreprocessorDefinitions>WITH_CSRI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(CsriLibraryPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(CsriLibraryName);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<!-- FFmpegSource support -->
<ItemDefinitionGroup Condition="'$(AegisubUseFfms)'=='true'">
<ClCompile>
<PreprocessorDefinitions>WITH_FFMS2;FFMS_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- Avisynth support -->
<ItemDefinitionGroup Condition="'$(AegisubUseAvisynth)'=='true'">
<ClCompile>
<PreprocessorDefinitions>WITH_AVISYNTH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- FFTW support -->
<ItemDefinitionGroup Condition="'$(AegisubUseFftw)'=='true'">
<ClCompile>
<PreprocessorDefinitions>WITH_FFTW3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- OpenAL support -->
<ItemDefinitionGroup Condition="'$(AegisubUseOpenAl)'=='true'">
<ClCompile>
<PreprocessorDefinitions>WITH_OPENAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- DirectSound support -->
<ItemDefinitionGroup Condition="'$(AegisubUseDSound)'=='true'">
<ClCompile>
<PreprocessorDefinitions>WITH_DIRECTSOUND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>dsound.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<!-- Special builds -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions Condition="'$(StartupLog)'=='true'">WITH_STARTUPLOG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- General configuration, always required libraries -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
NOMINMAX;
_WIN32_WINNT=0x0602;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
$(SrcDir)include\;
$(AegisubSourceBase)libaegisub\include;
$(AegisubSourceBase)build;
$(AegisubSourceBase)include;
$(AegisubSourceBase)src;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AegisubLibraryDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<!-- Add property pages -->
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)Aegisub.xml" />
<ProjectTools Include="AegisubConfig" />
</ItemGroup>
<!-- Compile translations if msgfmt is available -->
<Target Name="Translations"
AfterTargets="ClCompile"
Condition="'$(MsgFmtPath)'!=''"
Inputs="@(MsgFmt)"
Outputs="$(AegisubBinaryDir)locale\%(Filename)\aegisub.mo"
>
<Error Condition="!Exists($(MsgFmtPath))" Text="$(MsgFmtPath) not found" />
<MakeDir Directories="$(AegisubBinaryDir)locale\%(MsgFmt.Filename)" />
<Exec Command="$(MsgFmtPath) -o $(AegisubBinaryDir)locale\%(MsgFmt.Filename)\aegisub.mo %(MsgFmt.Identity)" />
</Target>
</Project>

View File

@ -1,440 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- VC boilerplate -->
<PropertyGroup Label="Globals">
<ProjectGuid>{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}</ProjectGuid>
<RootNamespace>Aegisub</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>exe</AegisubProjectType>
<SrcDir>..\..\src\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<PropertyGroup>
<TargetName>aegisub$(AegisubPlatformSuffix)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>agi_pre.h</PrecompiledHeaderFile>
<ForcedIncludeFiles>agi_pre.h</ForcedIncludeFiles>
<AdditionalOptions>/Zm150 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories Condition="'$(Platform)'=='Win32'">$(DXSDK_DIR)\Lib\x86</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Platform)'=='x64'">$(DXSDK_DIR)\Lib\x64</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<!-- Update git_version.h -->
<Target Name="UpdateVersion" BeforeTargets="ClCompile">
<GitVersion Root="$(AegisubSourceBase)" />
</Target>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\boost\boost.vcxproj">
<Project>{a649d828-a399-4d81-adef-94cfdba7847f}</Project>
</ProjectReference>
<ProjectReference Include="..\csrihelper\csrihelper.vcxproj">
<Project>{c832eaf3-860d-4373-a02c-933626b47a5e}</Project>
</ProjectReference>
<ProjectReference Include="..\ffms2\ffms2.vcxproj" Condition="Exists('$(FfmsSrcDir)')">
<Project>{aa137613-96a1-4388-8905-71345b4f8f87}</Project>
</ProjectReference>
<ProjectReference Include="..\fftw\fftw.vcxproj" Condition="Exists('$(FftwSrcDir)')">
<Project>{ea3dcc95-2423-4ea0-a508-7a427b4c0594}</Project>
</ProjectReference>
<ProjectReference Include="..\freetype2\freetype.vcxproj" Condition="Exists('$(Freetype2SrcDir)')">
<Project>{78b079bd-9fc7-4b9e-b4a6-96da0f00248b}</Project>
</ProjectReference>
<ProjectReference Include="..\fribidi\fribidi.vcxproj">
<Project>{fb8e8d19-a4d6-4181-943c-282075f49b41}</Project>
</ProjectReference>
<ProjectReference Include="..\hunspell\hunspell.vcxproj">
<Project>{cc791693-6b28-40ac-879d-64a6c16468e3}</Project>
</ProjectReference>
<ProjectReference Include="..\icu\icu.vcxproj">
<Project>{f934ab7b-186b-4e96-b20c-a58c38c1b818}</Project>
</ProjectReference>
<ProjectReference Include="..\libaegisub\libaegisub.vcxproj">
<Project>{bb3fed86-db7a-4dc7-964a-260fb86cde61}</Project>
</ProjectReference>
<ProjectReference Include="..\libass\libass.vcxproj" Condition="Exists('$(LibassSrcDir)')">
<Project>{8804f253-da67-4cc4-926b-0cd2aee5778d}</Project>
</ProjectReference>
<ProjectReference Include="..\libiconv\libiconv.vcxproj">
<Project>{965054d2-44f2-4eb2-9879-051cc3d7ef08}</Project>
</ProjectReference>
<ProjectReference Include="..\libresrc\libresrc.vcxproj">
<Project>{bd00d65f-24da-4784-8860-3b972ea125fc}</Project>
</ProjectReference>
<ProjectReference Include="..\luabins\luabins.vcxproj">
<Project>{A7A30702-8162-4E1A-A010-EF51B590C121}</Project>
</ProjectReference>
<ProjectReference Include="..\luajit\luajit.vcxproj">
<Project>{5391a8b1-9c70-4dc4-92ad-d3e34c6b803f}</Project>
</ProjectReference>
<ProjectReference Include="..\universalchardet\universalchardet.vcxproj">
<Project>{7b56955d-5162-4698-aa5b-47484edc8783}</Project>
</ProjectReference>
<ProjectReference Include="..\wx\wxWidgets.vcxproj">
<Project>{0518d6c0-7bf6-4fd1-91fb-191bd10db2ac}</Project>
</ProjectReference>
<ProjectReference Include="..\zlib\zlib.vcxproj">
<Project>{10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee}</Project>
</ProjectReference>
<ProjectReference Include="..\expat\expat.vcxproj">
<Project>{d6ba6815-0aac-48fa-8372-d32cde8bf07a}</Project>
</ProjectReference>
<ProjectReference Include="..\libpng\libpng.vcxproj">
<Project>{5cabcbef-e79a-4d27-94a5-cf4eaaf1dd96}</Project>
</ProjectReference>
<ProjectReference Include="..\scintilla\scintilla.vcxproj">
<Project>{d6ea54fd-f15c-42f6-929b-a83f299a4582}</Project>
</ProjectReference>
</ItemGroup>
<!-- Source files -->
<ItemGroup>
<ClInclude Include="$(SrcDir)MatroskaParser.h" />
<ClInclude Include="$(SrcDir)aegisublocale.h" />
<ClInclude Include="$(SrcDir)agi_pre.h" />
<ClInclude Include="$(SrcDir)ass_attachment.h" />
<ClInclude Include="$(SrcDir)ass_dialogue.h" />
<ClInclude Include="$(SrcDir)ass_entry.h" />
<ClInclude Include="$(SrcDir)ass_export_filter.h" />
<ClInclude Include="$(SrcDir)ass_exporter.h" />
<ClInclude Include="$(SrcDir)ass_file.h" />
<ClInclude Include="$(SrcDir)ass_info.h" />
<ClInclude Include="$(SrcDir)ass_karaoke.h" />
<ClInclude Include="$(SrcDir)ass_override.h" />
<ClInclude Include="$(SrcDir)ass_parser.h" />
<ClInclude Include="$(SrcDir)ass_style.h" />
<ClInclude Include="$(SrcDir)ass_style_storage.h" />
<ClInclude Include="$(SrcDir)audio_box.h" />
<ClInclude Include="$(SrcDir)audio_colorscheme.h" />
<ClInclude Include="$(SrcDir)audio_controller.h" />
<ClInclude Include="$(SrcDir)audio_display.h" />
<ClInclude Include="$(SrcDir)audio_karaoke.h" />
<ClInclude Include="$(SrcDir)audio_marker.h" />
<ClInclude Include="$(SrcDir)audio_player_portaudio.h" />
<ClInclude Include="$(SrcDir)audio_provider_factory.h" />
<ClInclude Include="$(SrcDir)audio_renderer.h" />
<ClInclude Include="$(SrcDir)audio_renderer_spectrum.h" />
<ClInclude Include="$(SrcDir)audio_renderer_waveform.h" />
<ClInclude Include="$(SrcDir)audio_timing.h" />
<ClInclude Include="$(SrcDir)auto4_base.h" />
<ClInclude Include="$(SrcDir)auto4_lua.h" />
<ClInclude Include="$(SrcDir)auto4_lua_factory.h" />
<ClInclude Include="$(SrcDir)avisynth.h" />
<ClInclude Include="$(SrcDir)avisynth_wrap.h" />
<ClInclude Include="$(SrcDir)base_grid.h" />
<ClInclude Include="$(SrcDir)block_cache.h" />
<ClInclude Include="$(SrcDir)charset_detect.h" />
<ClInclude Include="$(SrcDir)colorspace.h" />
<ClInclude Include="$(SrcDir)colour_button.h" />
<ClInclude Include="$(SrcDir)command\command.h" />
<ClInclude Include="$(SrcDir)compat.h" />
<ClInclude Include="$(SrcDir)crash_writer.h" />
<ClInclude Include="$(SrcDir)dialog_detached_video.h" />
<ClInclude Include="$(SrcDir)dialog_export_ebu3264.h" />
<ClInclude Include="$(SrcDir)dialog_manager.h" />
<ClInclude Include="$(SrcDir)dialog_progress.h" />
<ClInclude Include="$(SrcDir)dialog_search_replace.h" />
<ClInclude Include="$(SrcDir)dialog_style_editor.h" />
<ClInclude Include="$(SrcDir)dialog_styling_assistant.h" />
<ClInclude Include="$(SrcDir)dialog_translation.h" />
<ClInclude Include="$(SrcDir)dialogs.h" />
<ClInclude Include="$(SrcDir)export_fixstyle.h" />
<ClInclude Include="$(SrcDir)export_framerate.h" />
<ClInclude Include="$(SrcDir)factory_manager.h" />
<ClInclude Include="$(SrcDir)ffmpegsource_common.h" />
<ClInclude Include="$(SrcDir)fft.h" />
<ClInclude Include="$(SrcDir)flyweight_hash.h" />
<ClInclude Include="$(SrcDir)font_file_lister.h" />
<ClInclude Include="$(SrcDir)frame_main.h" />
<ClInclude Include="$(SrcDir)gl_text.h" />
<ClInclude Include="$(SrcDir)gl_wrap.h" />
<ClInclude Include="$(SrcDir)grid_column.h" />
<ClInclude Include="$(SrcDir)help_button.h" />
<ClInclude Include="$(SrcDir)hotkey_data_view_model.h" />
<ClInclude Include="$(SrcDir)include\aegisub\audio_player.h" />
<ClInclude Include="$(SrcDir)include\aegisub\context.h" />
<ClInclude Include="$(SrcDir)include\aegisub\hotkey.h" />
<ClInclude Include="$(SrcDir)include\aegisub\menu.h" />
<ClInclude Include="$(SrcDir)include\aegisub\spellchecker.h" />
<ClInclude Include="$(SrcDir)include\aegisub\subtitles_provider.h" />
<ClInclude Include="$(SrcDir)include\aegisub\toolbar.h" />
<ClInclude Include="$(SrcDir)include\aegisub\video_provider.h" />
<ClInclude Include="$(SrcDir)initial_line_state.h" />
<ClInclude Include="$(SrcDir)main.h" />
<ClInclude Include="$(SrcDir)mkv_wrap.h" />
<ClInclude Include="$(SrcDir)options.h" />
<ClInclude Include="$(SrcDir)pen.h" />
<ClInclude Include="$(SrcDir)persist_location.h" />
<ClInclude Include="$(SrcDir)placeholder_ctrl.h" />
<ClInclude Include="$(SrcDir)preferences.h" />
<ClInclude Include="$(SrcDir)preferences_base.h" />
<ClInclude Include="$(SrcDir)project.h" />
<ClInclude Include="$(SrcDir)resolution_resampler.h" />
<ClInclude Include="$(SrcDir)search_replace_engine.h" />
<ClInclude Include="$(SrcDir)selection_controller.h" />
<ClInclude Include="$(SrcDir)spellchecker_hunspell.h" />
<ClInclude Include="$(SrcDir)spline.h" />
<ClInclude Include="$(SrcDir)spline_curve.h" />
<ClInclude Include="$(SrcDir)string_codec.h" />
<ClInclude Include="$(SrcDir)subs_controller.h" />
<ClInclude Include="$(SrcDir)subs_edit_box.h" />
<ClInclude Include="$(SrcDir)subs_edit_ctrl.h" />
<ClInclude Include="$(SrcDir)subs_preview.h" />
<ClInclude Include="$(SrcDir)subtitle_format.h" />
<ClInclude Include="$(SrcDir)subtitle_format_ass.h" />
<ClInclude Include="$(SrcDir)subtitle_format_ebu3264.h" />
<ClInclude Include="$(SrcDir)subtitle_format_encore.h" />
<ClInclude Include="$(SrcDir)subtitle_format_microdvd.h" />
<ClInclude Include="$(SrcDir)subtitle_format_mkv.h" />
<ClInclude Include="$(SrcDir)subtitle_format_srt.h" />
<ClInclude Include="$(SrcDir)subtitle_format_ssa.h" />
<ClInclude Include="$(SrcDir)subtitle_format_transtation.h" />
<ClInclude Include="$(SrcDir)subtitle_format_ttxt.h" />
<ClInclude Include="$(SrcDir)subtitle_format_txt.h" />
<ClInclude Include="$(SrcDir)subtitles_provider_csri.h" />
<ClInclude Include="$(SrcDir)subtitles_provider_libass.h" />
<ClInclude Include="$(SrcDir)text_file_reader.h" />
<ClInclude Include="$(SrcDir)text_file_writer.h" />
<ClInclude Include="$(SrcDir)text_selection_controller.h" />
<ClInclude Include="$(SrcDir)thesaurus.h" />
<ClInclude Include="$(SrcDir)async_video_provider.h" />
<ClInclude Include="$(SrcDir)time_range.h" />
<ClInclude Include="$(SrcDir)timeedit_ctrl.h" />
<ClInclude Include="$(SrcDir)toggle_bitmap.h" />
<ClInclude Include="$(SrcDir)tooltip_manager.h" />
<ClInclude Include="$(SrcDir)utils.h" />
<ClInclude Include="$(SrcDir)validators.h" />
<ClInclude Include="$(SrcDir)vector2d.h" />
<ClInclude Include="$(SrcDir)version.h" />
<ClInclude Include="$(SrcDir)video_box.h" />
<ClInclude Include="$(SrcDir)video_controller.h" />
<ClInclude Include="$(SrcDir)video_display.h" />
<ClInclude Include="$(SrcDir)video_frame.h" />
<ClInclude Include="$(SrcDir)video_out_gl.h" />
<ClInclude Include="$(SrcDir)video_provider_dummy.h" />
<ClInclude Include="$(SrcDir)video_provider_manager.h" />
<ClInclude Include="$(SrcDir)video_slider.h" />
<ClInclude Include="$(SrcDir)visual_feature.h" />
<ClInclude Include="$(SrcDir)visual_tool.h" />
<ClInclude Include="$(SrcDir)visual_tool_clip.h" />
<ClInclude Include="$(SrcDir)visual_tool_cross.h" />
<ClInclude Include="$(SrcDir)visual_tool_drag.h" />
<ClInclude Include="$(SrcDir)visual_tool_rotatexy.h" />
<ClInclude Include="$(SrcDir)visual_tool_rotatez.h" />
<ClInclude Include="$(SrcDir)visual_tool_scale.h" />
<ClInclude Include="$(SrcDir)visual_tool_vector_clip.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)aegisublocale.cpp" />
<ClCompile Include="$(SrcDir)agi_pre.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(SrcDir)MatroskaParser.c">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<ForcedIncludeFiles></ForcedIncludeFiles>
</ClCompile>
<ClCompile Include="$(SrcDir)ass_attachment.cpp" />
<ClCompile Include="$(SrcDir)ass_dialogue.cpp" />
<ClCompile Include="$(SrcDir)ass_entry.cpp" />
<ClCompile Include="$(SrcDir)ass_export_filter.cpp" />
<ClCompile Include="$(SrcDir)ass_exporter.cpp" />
<ClCompile Include="$(SrcDir)ass_file.cpp" />
<ClCompile Include="$(SrcDir)ass_karaoke.cpp" />
<ClCompile Include="$(SrcDir)ass_override.cpp" />
<ClCompile Include="$(SrcDir)ass_parser.cpp" />
<ClCompile Include="$(SrcDir)ass_style.cpp" />
<ClCompile Include="$(SrcDir)ass_style_storage.cpp" />
<ClCompile Include="$(SrcDir)async_video_provider.cpp" />
<ClCompile Include="$(SrcDir)audio_box.cpp" />
<ClCompile Include="$(SrcDir)audio_colorscheme.cpp" />
<ClCompile Include="$(SrcDir)audio_controller.cpp" />
<ClCompile Include="$(SrcDir)audio_display.cpp" />
<ClCompile Include="$(SrcDir)audio_karaoke.cpp" />
<ClCompile Include="$(SrcDir)audio_marker.cpp" />
<ClCompile Include="$(SrcDir)audio_player.cpp" />
<ClCompile Include="$(SrcDir)audio_player_alsa.cpp" />
<ClCompile Include="$(SrcDir)audio_player_dsound.cpp" />
<ClCompile Include="$(SrcDir)audio_player_dsound2.cpp" />
<ClCompile Include="$(SrcDir)audio_player_openal.cpp" />
<ClCompile Include="$(SrcDir)audio_player_oss.cpp" />
<ClCompile Include="$(SrcDir)audio_player_portaudio.cpp" />
<ClCompile Include="$(SrcDir)audio_player_pulse.cpp" />
<ClCompile Include="$(SrcDir)audio_provider_avs.cpp" />
<ClCompile Include="$(SrcDir)audio_provider_factory.cpp" />
<ClCompile Include="$(SrcDir)audio_provider_ffmpegsource.cpp" />
<ClCompile Include="$(SrcDir)audio_renderer.cpp" />
<ClCompile Include="$(SrcDir)audio_renderer_spectrum.cpp" />
<ClCompile Include="$(SrcDir)audio_renderer_waveform.cpp" />
<ClCompile Include="$(SrcDir)audio_timing_dialogue.cpp" />
<ClCompile Include="$(SrcDir)audio_timing_karaoke.cpp" />
<ClCompile Include="$(SrcDir)auto4_base.cpp" />
<ClCompile Include="$(SrcDir)auto4_lua.cpp" />
<ClCompile Include="$(SrcDir)auto4_lua_assfile.cpp" />
<ClCompile Include="$(SrcDir)auto4_lua_dialog.cpp" />
<ClCompile Include="$(SrcDir)auto4_lua_progresssink.cpp" />
<ClCompile Include="$(SrcDir)avisynth_wrap.cpp" />
<ClCompile Include="$(SrcDir)base_grid.cpp" />
<ClCompile Include="$(SrcDir)charset_detect.cpp" />
<ClCompile Include="$(SrcDir)colorspace.cpp" />
<ClCompile Include="$(SrcDir)colour_button.cpp" />
<ClCompile Include="$(SrcDir)command\app.cpp" />
<ClCompile Include="$(SrcDir)command\audio.cpp" />
<ClCompile Include="$(SrcDir)command\automation.cpp" />
<ClCompile Include="$(SrcDir)command\command.cpp" />
<ClCompile Include="$(SrcDir)command\edit.cpp" />
<ClCompile Include="$(SrcDir)command\grid.cpp" />
<ClCompile Include="$(SrcDir)command\help.cpp" />
<ClCompile Include="$(SrcDir)command\keyframe.cpp" />
<ClCompile Include="$(SrcDir)command\recent.cpp" />
<ClCompile Include="$(SrcDir)command\subtitle.cpp" />
<ClCompile Include="$(SrcDir)command\time.cpp" />
<ClCompile Include="$(SrcDir)command\timecode.cpp" />
<ClCompile Include="$(SrcDir)command\tool.cpp" />
<ClCompile Include="$(SrcDir)command\video.cpp" />
<ClCompile Include="$(SrcDir)command\vis_tool.cpp" />
<ClCompile Include="$(SrcDir)compat.cpp" />
<ClCompile Include="$(SrcDir)context.cpp" />
<ClCompile Include="$(SrcDir)crash_writer.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="$(SrcDir)crash_writer_minidump.cpp" />
<ClCompile Include="$(SrcDir)dialog_about.cpp" />
<ClCompile Include="$(SrcDir)dialog_attachments.cpp" />
<ClCompile Include="$(SrcDir)dialog_automation.cpp" />
<ClCompile Include="$(SrcDir)dialog_autosave.cpp" />
<ClCompile Include="$(SrcDir)dialog_colorpicker.cpp" />
<ClCompile Include="$(SrcDir)dialog_detached_video.cpp" />
<ClCompile Include="$(SrcDir)dialog_dummy_video.cpp" />
<ClCompile Include="$(SrcDir)dialog_export.cpp" />
<ClCompile Include="$(SrcDir)dialog_export_ebu3264.cpp" />
<ClCompile Include="$(SrcDir)dialog_fonts_collector.cpp" />
<ClCompile Include="$(SrcDir)dialog_jumpto.cpp" />
<ClCompile Include="$(SrcDir)dialog_kara_timing_copy.cpp" />
<ClCompile Include="$(SrcDir)dialog_log.cpp" />
<ClCompile Include="$(SrcDir)dialog_paste_over.cpp" />
<ClCompile Include="$(SrcDir)dialog_progress.cpp" />
<ClCompile Include="$(SrcDir)dialog_properties.cpp" />
<ClCompile Include="$(SrcDir)dialog_resample.cpp" />
<ClCompile Include="$(SrcDir)dialog_search_replace.cpp" />
<ClCompile Include="$(SrcDir)dialog_selected_choices.cpp" />
<ClCompile Include="$(SrcDir)dialog_selection.cpp" />
<ClCompile Include="$(SrcDir)dialog_shift_times.cpp" />
<ClCompile Include="$(SrcDir)dialog_spellchecker.cpp" />
<ClCompile Include="$(SrcDir)dialog_style_editor.cpp" />
<ClCompile Include="$(SrcDir)dialog_style_manager.cpp" />
<ClCompile Include="$(SrcDir)dialog_styling_assistant.cpp" />
<ClCompile Include="$(SrcDir)dialog_text_import.cpp" />
<ClCompile Include="$(SrcDir)dialog_timing_processor.cpp" />
<ClCompile Include="$(SrcDir)dialog_translation.cpp" />
<ClCompile Include="$(SrcDir)dialog_version_check.cpp" />
<ClCompile Include="$(SrcDir)dialog_video_details.cpp" />
<ClCompile Include="$(SrcDir)dialog_video_properties.cpp" />
<ClCompile Include="$(SrcDir)export_fixstyle.cpp" />
<ClCompile Include="$(SrcDir)export_framerate.cpp" />
<ClCompile Include="$(SrcDir)ffmpegsource_common.cpp">
<DisableSpecificWarnings>4345;4307;4800</DisableSpecificWarnings>
</ClCompile>
<ClCompile Include="$(SrcDir)fft.cpp" />
<ClCompile Include="$(SrcDir)font_file_lister.cpp" />
<ClCompile Include="$(SrcDir)font_file_lister_gdi.cpp" />
<ClCompile Include="$(SrcDir)frame_main.cpp" />
<ClCompile Include="$(SrcDir)gl_text.cpp" />
<ClCompile Include="$(SrcDir)gl_wrap.cpp" />
<ClCompile Include="$(SrcDir)grid_column.cpp" />
<ClCompile Include="$(SrcDir)help_button.cpp" />
<ClCompile Include="$(SrcDir)hotkey.cpp" />
<ClCompile Include="$(SrcDir)hotkey_data_view_model.cpp" />
<ClCompile Include="$(SrcDir)initial_line_state.cpp" />
<ClCompile Include="$(SrcDir)main.cpp" />
<ClCompile Include="$(SrcDir)menu.cpp" />
<ClCompile Include="$(SrcDir)mkv_wrap.cpp" />
<ClCompile Include="$(SrcDir)pen.cpp" />
<ClCompile Include="$(SrcDir)persist_location.cpp" />
<ClCompile Include="$(SrcDir)preferences.cpp" />
<ClCompile Include="$(SrcDir)preferences_base.cpp" />
<ClCompile Include="$(SrcDir)project.cpp" />
<ClCompile Include="$(SrcDir)resolution_resampler.cpp" />
<ClCompile Include="$(SrcDir)search_replace_engine.cpp" />
<ClCompile Include="$(SrcDir)selection_controller.cpp" />
<ClCompile Include="$(SrcDir)spellchecker.cpp" />
<ClCompile Include="$(SrcDir)spellchecker_hunspell.cpp" />
<ClCompile Include="$(SrcDir)spline.cpp" />
<ClCompile Include="$(SrcDir)spline_curve.cpp" />
<ClCompile Include="$(SrcDir)string_codec.cpp" />
<ClCompile Include="$(SrcDir)subs_controller.cpp" />
<ClCompile Include="$(SrcDir)subs_edit_box.cpp" />
<ClCompile Include="$(SrcDir)subs_edit_ctrl.cpp" />
<ClCompile Include="$(SrcDir)subs_preview.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_ass.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_ebu3264.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_encore.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_microdvd.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_mkv.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_srt.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_ssa.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_transtation.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_ttxt.cpp" />
<ClCompile Include="$(SrcDir)subtitle_format_txt.cpp" />
<ClCompile Include="$(SrcDir)subtitles_provider.cpp" />
<ClCompile Include="$(SrcDir)subtitles_provider_csri.cpp" />
<ClCompile Include="$(SrcDir)subtitles_provider_libass.cpp" />
<ClCompile Include="$(SrcDir)text_file_reader.cpp" />
<ClCompile Include="$(SrcDir)text_file_writer.cpp" />
<ClCompile Include="$(SrcDir)text_selection_controller.cpp" />
<ClCompile Include="$(SrcDir)thesaurus.cpp" />
<ClCompile Include="$(SrcDir)timeedit_ctrl.cpp" />
<ClCompile Include="$(SrcDir)toggle_bitmap.cpp" />
<ClCompile Include="$(SrcDir)toolbar.cpp" />
<ClCompile Include="$(SrcDir)tooltip_manager.cpp" />
<ClCompile Include="$(SrcDir)utils.cpp" />
<ClCompile Include="$(SrcDir)validators.cpp" />
<ClCompile Include="$(SrcDir)vector2d.cpp" />
<ClCompile Include="$(SrcDir)version.cpp" />
<ClCompile Include="$(SrcDir)video_box.cpp" />
<ClCompile Include="$(SrcDir)video_controller.cpp" />
<ClCompile Include="$(SrcDir)video_display.cpp" />
<ClCompile Include="$(SrcDir)video_frame.cpp" />
<ClCompile Include="$(SrcDir)video_out_gl.cpp" />
<ClCompile Include="$(SrcDir)video_provider_avs.cpp" />
<ClCompile Include="$(SrcDir)video_provider_cache.cpp" />
<ClCompile Include="$(SrcDir)video_provider_dummy.cpp" />
<ClCompile Include="$(SrcDir)video_provider_ffmpegsource.cpp" />
<ClCompile Include="$(SrcDir)video_provider_manager.cpp" />
<ClCompile Include="$(SrcDir)video_provider_yuv4mpeg.cpp" />
<ClCompile Include="$(SrcDir)video_slider.cpp" />
<ClCompile Include="$(SrcDir)visual_feature.cpp" />
<ClCompile Include="$(SrcDir)visual_tool.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_clip.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_cross.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_drag.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_rotatexy.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_rotatez.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_scale.cpp" />
<ClCompile Include="$(SrcDir)visual_tool_vector_clip.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(SrcDir)res\res.rc" />
<ResourceCompile Include="$(SrcDir)res\strings.rc" />
</ItemGroup>
<ItemGroup>
<MsgFmt Include="$(AegisubSourceBase)po\*.po" />
</ItemGroup>
<ImportGroup Label="ExtensionTargets">
<Import Project="$(MSBuildThisFileDirectory)Aegisub.targets" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,254 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2011 Niels Martin Hansen
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/
-->
<Rule Name="AegisubConfig"
DisplayName="Aegisub"
Order="1"
PageTemplate="tool"
xmlns="http://schemas.microsoft.com/build/2009/properties">
<Rule.DataSource>
<DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="true" />
</Rule.DataSource>
<Rule.Categories>
<Category Name="Config" DisplayName="Configuration" Description="General build configuration" />
<Category Name="Features" DisplayName="External libraries" Description="Control which optional external libraries to use" />
<Category Name="Paths" DisplayName="Library paths" Description="Configure third-party library paths" />
</Rule.Categories>
<!-- Config -->
<BoolProperty
Name="StartupLog"
DisplayName="Start-up logging"
Description="Enable verbose startup logging to help figuration out where an error occurs"
Category="Config"
/>
<StringProperty
Name="AegisubBuildCredit"
Category="Config"
DisplayName="Build credit"
Description="Name the build should be credited to. Appears in the about box, and in the title bar of development builds."
/>
<BoolProperty
Name="AegisubUseUpdateChecker"
Category="Config"
DisplayName="Enable Update Checker"
Description="Specify whether to enable the update checker. Should be disabled if you will be distributing builds via something that has its own update checking functionality."
/>
<StringProperty
Name="UpdateCheckerServer"
Category="Config"
DisplayName="Update Checker Server"
Description="Server name to connect to for updates."
/>
<StringProperty
Name="UpdateCheckerURL"
Category="Config"
DisplayName="Update Checker URL"
Description="URL to get for updates."
/>
<StringProperty
Name="MsgFmtPath"
Category="Config"
DisplayName="msgfmt.exe location"
Description="Location of msgfmt.exe, for compiling translations"
/>
<!-- External Libraries -->
<BoolProperty
Name="AegisubUseAvisynth"
Category="Features"
DisplayName="Avisynth"
Description="Enable the Avisynth audio and video providers. This is experimental on x64. This has no external build dependencies."
/>
<EnumProperty
Name="AegisubUseCsri"
DisplayName="Use CSRI subtitle renderer"
Description="Specify whether to include support for CSRI subtitle rendering. The included helper library dynamically loads CSRI renderers, while linking another library allows you to e.g. link VSFilter.dll directly."
Category="Features"
>
<EnumValue Name="HelperLibrary" DisplayName="Use included helper library" Description="Use the included helper library to dynamically load CSRI renderers." />
<EnumValue Name="External" DisplayName="Link other library" Description="Use another CSRI renderer" />
<EnumValue Name="false" DisplayName="No CSRI support" Description="Do not use CSRI" />
</EnumProperty>
<BoolProperty
Name="AegisubUseDSound"
Category="Features"
DisplayName="DirectSound"
Description="Enable the DirectSound-based audio player"
/>
<BoolProperty
Name="AegisubUseFfms"
Category="Features"
DisplayName="FFMS2"
Description="Enable the FFMS2 audio and video providers. Requires copies of the FFMS2 and FFmpeg/libav source"
/>
<BoolProperty
Name="AegisubUseFftw"
Category="Features"
DisplayName="FFTW"
Description="A high-speed fourier transformation library which improves the spectograph speed and quality. Requires a copy of the FFTW 3.2 source."
/>
<BoolProperty
Name="AegisubUseOpenAl"
Category="Features"
DisplayName="OpenAL"
Description="OpenAL audio player. Requires a copy of the OpenAL SDK."
/>
<!-- Library Paths -->
<StringProperty
Subtype="folder"
Name="WinRarPath"
Category="Paths"
DisplayName="WinRAR.exe location"
Description="Location of a copy of WinRAR.exe. Required to build the portable installer."
/>
<StringProperty
Subtype="folder"
Name="BoostPath"
Category="Paths"
DisplayName="Boost root path"
Description="Location of a copy of boost."
/>
<StringProperty
Subtype="folder"
Name="CsriLibraryPath"
Category="Paths"
DisplayName="External CSRI library path"
Description="Location of external CSRI library files, for when not using the CSRI helper library."
/>
<StringProperty
Subtype="file"
Name="CsriLibraryName"
Category="Paths"
DisplayName="External CSRI library name"
Description="Name of external CSRI library, for when not using the CSRI helper library"
/>
<StringProperty
Subtype="folder"
Name="FfmsSrcDir"
Category="Paths"
DisplayName="FFMS2 source path"
Description="Location of FFMS2 source code."
/>
<StringProperty
Subtype="folder"
Name="FfmpegSrcDir"
Category="Paths"
DisplayName="FFmpeg/libav source path"
Description="Location of FFmpeg or libav source code. Required for FFMS2."
/>
<StringProperty
Subtype="folder"
Name="FftwSrcDir"
Category="Paths"
DisplayName="FFTW 3 source path"
Description="Location of FFTW 3 source code."
/>
<StringProperty
Subtype="folder"
Name="Freetype2SrcDir"
Category="Paths"
DisplayName="Freetype 2 source path"
Description="Location of Freetype 2 source code. Required for libass and fontconfig."
/>
<StringProperty
Subtype="folder"
Name="FribidiSrcDir"
Category="Paths"
DisplayName="Fribidi source path"
Description="Location of Fribidi source code. Required for libass."
/>
<StringProperty
Subtype="folder"
Name="FontconfigSrcDir"
Category="Paths"
DisplayName="Fontconfig source path"
Description="Location of Fontconfig source code."
/>
<StringProperty
Subtype="folder"
Name="IcuSrcDir"
Category="Paths"
DisplayName="ICU source path"
Description="Location of ICU source code."
/>
<StringProperty
Subtype="folder"
Name="GtestSrcDir"
Category="Paths"
DisplayName="googletest source path"
Description="Location of googletest source code."
/>
<StringProperty
Subtype="folder"
Name="LibassSrcDir"
Category="Paths"
DisplayName="libass source path"
Description="Location of libass source code."
/>
<StringProperty
Subtype="folder"
Name="WxSrcDir"
Category="Paths"
DisplayName="wxWidgets source path"
Description="Location of wxWidgets source code."
/>
<StringProperty
Subtype="folder"
Name="ZlibSrcDir"
Category="Paths"
DisplayName="zlib source path"
Description="Location of zlib source code. Required for FFMS2."
/>
</Rule>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_PropertySheetDisplayName>Standard Libraries</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>
Usp10.lib;
Vfw32.lib;
advapi32.lib;
bcrypt.lib;
comctl32.lib;
comdlg32.lib;
gdi32.lib;
kernel32.lib;
ole32.lib;
oleaut32.lib;
opengl32.lib;
rpcrt4.lib;
shell32.lib;
user32.lib;
uuid.lib;
wsock32.lib;
%(AdditionalDependencies)
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

View File

@ -1,81 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{914A5B35-66B2-4293-BB6C-D93DA9BC68C6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BuildTasks</RootNamespace>
<AssemblyName>BuildTasks</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\paths.props" />
<PropertyGroup>
<OutputPath>$(AegisubBinaryDir)</OutputPath>
<IntermediateOutputPath>$(AegisubObjectDir)</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.SharpZipLib">
<HintPath>..\..\.nuget\lib\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="LibGit2Sharp">
<HintPath>..\..\.nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\LibGit2Sharp.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build" />
<Reference Include="Microsoft.Build.Engine" />
<Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.Build.Utilities.v4.0" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="DownloadTgzFile.cs" />
<Compile Include="GitVersion.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TarballProject.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<PropertyGroup>
<PostBuildEvent>
if not exist "$(TargetDir)NativeBinaries" md "$(TargetDir)NativeBinaries"
if not exist "$(TargetDir)NativeBinaries\x86" md "$(TargetDir)NativeBinaries\x86"
xcopy /s /y /d "$(SolutionDir).nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\NativeBinaries\x86\*.*" "$(TargetDir)NativeBinaries\x86"
if not exist "$(TargetDir)NativeBinaries\amd64" md "$(TargetDir)NativeBinaries\amd64"
xcopy /s /y /d "$(SolutionDir).nuget\lib\LibGit2Sharp.0.17.0.0\lib\net35\NativeBinaries\amd64\*.*" "$(TargetDir)NativeBinaries\amd64"</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,54 +0,0 @@
// Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
//
// Aegisub Project http://www.aegisub.org/
namespace BuildTasks {
public class DownloadTgzFile : Microsoft.Build.Utilities.Task {
public string Url { get; set; }
public string OutputFile { get; set; }
public string Hash { get; set; }
private void DownloadArchive(string url, string unpackDest) {
var downloadStream = new System.Net.WebClient().OpenRead(url);
var gzStream = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(downloadStream);
using (var file = System.IO.File.Create(unpackDest)) {
gzStream.CopyTo(file);
}
}
public override bool Execute() {
try {
using (var fs = System.IO.File.OpenRead(this.OutputFile)) {
var hash = new System.Security.Cryptography.SHA1Managed().ComputeHash(fs);
if (System.BitConverter.ToString(hash).Replace("-", "").ToLower() == this.Hash)
return true;
}
}
catch (System.IO.IOException) {
// Need to download if file not present or not readable
}
try {
DownloadArchive(this.Url, this.OutputFile);
}
catch (System.Exception e) {
this.Log.LogErrorFromException(e);
return false;
}
return true;
}
}
}

View File

@ -1,117 +0,0 @@
// Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
//
// Aegisub Project http://www.aegisub.org/
using LibGit2Sharp;
using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace BuildTasks {
public class GitVersion : Microsoft.Build.Utilities.Task {
public string Root { get; set; }
private static ObjectId LastSVNCommit = new ObjectId("16cd907fe7482cb54a7374cd28b8501f138116be");
private const string versionHTemplate =
@"#define BUILD_GIT_VERSION_NUMBER {0}
#define BUILD_GIT_VERSION_STRING ""{1}""
#define TAGGED_RELEASE {2}
#define INSTALLER_VERSION ""{3}""
#define RESOURCE_BASE_VERSION {4}
";
private const string versionXmlTemplate =
@"<?xml version=""1.0"" encoding=""utf-8""?>
<Project ToolsVersion=""4.0"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<PropertyGroup>
<GitVersionNumber>{0}</GitVersionNumber>
<GitVersionString>{1}</GitVersionString>
</PropertyGroup>
</Project>
";
private string UniqueAbbreviation(Repository repo, string full) {
for (int len = 7; len < 40; ++len) {
try {
repo.Lookup(full.Substring(0, len));
return full.Substring(0, len);
}
catch (AmbiguousSpecificationException) {
continue;
}
}
return full;
}
private void WriteIfChanged(string path, string template, params object[] args) {
var body = string.Format(template, args).Replace("\r\n", "\n");
try {
var oldBody = File.ReadAllText(path);
if (body != oldBody)
File.WriteAllText(path, body);
}
catch (IOException) {
File.WriteAllText(path, body);
}
}
public override bool Execute() {
string versionHPath = Root + "build/git_version.h";
string versionXmlPath = Root + "build/git_version.xml";
if (!Directory.Exists(Root + ".git")) {
if (File.Exists(versionHPath)) {
Log.LogMessage("Using cached version.h");
return true;
}
Log.LogError("git repo not found and no cached git_version.h");
return false;
}
int commits = 6962; // Rev ID when we switched away from SVN
string installerVersion = "0.0.0";
string resourceVersion = "0, 0, 0";
string versionStr = null;
bool taggedRelease = false;
using (var repo = new Repository(Root + ".git")) {
commits += repo.Commits.TakeWhile(c => !c.Id.Equals(LastSVNCommit)).Count();
foreach (var tag in repo.Tags) {
if (!tag.Target.Id.Equals(repo.Head.Tip.Id)) continue;
taggedRelease = true;
versionStr = tag.Name;
if (versionStr.StartsWith("v")) versionStr = versionStr.Substring(1);
if (Regex.Match(versionStr, @"(\d)\.(\d)\.(\d)").Success) {
installerVersion = versionStr;
resourceVersion = versionStr.Replace(".", ", ");
}
break;
}
if (versionStr == null) {
string branch = repo.Head.Name ?? "(unnamed branch)";
versionStr = string.Format("{0}-{1}-{2}", commits, branch,
UniqueAbbreviation(repo, repo.Head.Tip.Sha.ToString()));
}
}
WriteIfChanged(versionHPath, versionHTemplate, commits, versionStr, taggedRelease ? "1" : "0", installerVersion, resourceVersion);
WriteIfChanged(versionXmlPath, versionXmlTemplate, commits, versionStr);
return true;
}
}
}

View File

@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("BuildTasks")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BuildTasks")]
[assembly: AssemblyCopyright("Copyright © Thomas Goyne 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("157803fb-ca11-4802-8394-1ee152112561")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,96 +0,0 @@
// Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
//
// Aegisub Project http://www.aegisub.org/
using ICSharpCode.SharpZipLib.Tar;
using System;
using System.IO;
using System.Security.Cryptography;
namespace BuildTasks {
public class TarballProject : Microsoft.Build.Utilities.Task {
public string Url { get; set; }
public string Root { get; set; }
public string Hash { get; set; }
private bool NeedsUpdate() {
try {
return Hash != File.ReadAllText(Path.Combine(Root, "aegisub.hash"));
}
catch (IOException) {
return true;
}
}
private void ExtractEntry(string destDir, TarEntry entry, ICSharpCode.SharpZipLib.Tar.TarInputStream stream) {
string name = entry.Name;
if (Path.IsPathRooted(name))
name = name.Substring(Path.GetPathRoot(name).Length);
name = name.Replace('/', Path.DirectorySeparatorChar);
name = name.Substring(name.IndexOf(Path.DirectorySeparatorChar) + 1);
string dest = Path.Combine(destDir, name);
if (entry.IsDirectory)
Directory.CreateDirectory(dest);
else {
Directory.CreateDirectory(Path.GetDirectoryName(dest));
using (Stream outputStream = File.Create(dest)) {
stream.CopyEntryContents(outputStream);
}
}
}
public override bool Execute() {
if (!NeedsUpdate()) return true;
try {
var ms = new MemoryStream();
var downloadStream = new System.Net.WebClient().OpenRead(Url);
downloadStream.CopyTo(ms);
ms.Seek(0, SeekOrigin.Begin);
var hash = new SHA256Managed().ComputeHash(ms);
if (BitConverter.ToString(hash).Replace("-", "").ToLower() != this.Hash) {
Log.LogError("Got wrong hash for {0}", Url);
return false;
}
try {
Directory.Delete(Root, true);
}
catch (DirectoryNotFoundException) {
// Obviously not an issue
}
ms.Seek(0, SeekOrigin.Begin);
var bzStream = new ICSharpCode.SharpZipLib.BZip2.BZip2InputStream(ms);
var tarStream = new ICSharpCode.SharpZipLib.Tar.TarInputStream(bzStream);
while (true) {
TarEntry entry = tarStream.GetNextEntry();
if (entry == null) break;
ExtractEntry(Root, entry, tarStream);
}
File.WriteAllText(Path.Combine(Root, "aegisub.hash"), Hash);
return true;
}
catch (Exception e) {
Log.LogErrorFromException(e);
return false;
}
}
}
}

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="LibGit2Sharp" version="0.17.0.0" targetFramework="net45" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
</packages>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2011 Niels Martin Hansen
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/
$Id$
-->
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Default settings for build-time options -->
<PropertyGroup>
<AegisubBuildCredit>Anonymous</AegisubBuildCredit>
<AegisubUseAvisynth Condition="'$(AegisubUseAvisynth)|$(Platform)'=='|Win32'">true</AegisubUseAvisynth>
<AegisubUseAvisynth Condition="'$(AegisubUseAvisynth)|$(Platform)'=='|x64'">false</AegisubUseAvisynth>
<AegisubUseCsri>HelperLibrary</AegisubUseCsri>
<AegisubUseDSound>true</AegisubUseDSound>
<AegisubUseFfms>true</AegisubUseFfms>
<AegisubUseFftw>true</AegisubUseFftw>
<AegisubUseOpenAl>false</AegisubUseOpenAl>
<AegisubUseUpdateChecker>true</AegisubUseUpdateChecker>
<CsriLibraryName>vsfilter.lib</CsriLibraryName>
<StartupLog>false</StartupLog>
<UpdateCheckerServer>updates.aegisub.org</UpdateCheckerServer>
<UpdateCheckerURL>/trunk</UpdateCheckerURL>
<VendorRoot>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\vendor))</VendorRoot>
<BoostPath>$(VendorRoot)\boost</BoostPath>
<FfmsSrcDir>$(VendorRoot)\ffms2</FfmsSrcDir>
<FfmpegSrcDir>$(VendorRoot)\ffmpeg</FfmpegSrcDir>
<FftwSrcDir>$(VendorRoot)\fftw</FftwSrcDir>
<Freetype2SrcDir>$(VendorRoot)\freetype2</Freetype2SrcDir>
<FribidiSrcDir>$(VendorRoot)\fribidi</FribidiSrcDir>
<GtestSrcDir>$(VendorRoot)\googletest</GtestSrcDir>
<IcuSrcDir>$(VendorRoot)\icu\source</IcuSrcDir>
<LibassSrcDir>$(VendorRoot)\libass</LibassSrcDir>
<WxSrcDir>$(VendorRoot)\wxWidgets</WxSrcDir>
<ZlibSrcDir>$(VendorRoot)\wxWidgets\src\zlib</ZlibSrcDir>
</PropertyGroup>
</Project>

View File

@ -1,147 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{5B0E9978-E76F-4BBC-8194-228323F59B53}</ProjectGuid>
<RootNamespace>PortableInstaller</RootNamespace>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
<Import Project="$(MSBuildThisFileDirectory)..\git_version.xml" />
</ImportGroup>
<PropertyGroup>
<PlatformName Condition="$(Platform) == 'Win32'">x86</PlatformName>
<PlatformName Condition="$(Platform) == 'x64'">x64</PlatformName>
<FileName>aegisub-$(GitVersionString)-portable-$(AegisubPlatformSuffix)</FileName>
<OutputFile>$(AegisubSourceBase)packages\win_installer\output\$(FileName).exe</OutputFile>
</PropertyGroup>
<Target Name="Build">
<Error
Condition="!Exists($(WinRarPath))"
Text="WinRAR.exe not found. Please set the path to it."
/>
<MakeDir Directories="$(AegisubObjectDir)\$(FileName)" />
<MakeDir Directories="$(AegisubSourceBase)\packages\win_installer\output" />
<Copy
SourceFiles="@(RarContents)"
DestinationFiles="$(AegisubObjectDir)$(FileName)\%(RarContents.OutputPath)%(Filename)%(Extension)"
SkipUnchangedFiles="true"
/>
<Copy
SourceFiles="@(RarMetafiles)"
DestinationFolder="$(AegisubObjectDir)"
SkipUnchangedFiles="true"
/>
<Delete Files="$(OutputFile)" />
<Exec
Command="&quot;$(WinRarPath)&quot; a -sfx -s -m5 -ep1 -r -zportable-comment.txt -iimgside-logo.bmp -iiconicon.ico $(OutputFile) $(FileName)"
WorkingDirectory="$(AegisubObjectDir)"
/>
</Target>
<ItemGroup>
<RarContents Include="$(AegisubSourceBase)automation\autoload\cleantags-autoload.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\kara-templater.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\karaoke-auto-leadin.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-1-edgeblur.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-2-mkfullwitdh.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\select-overlaps.moon">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\strip-tags.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\future-windy-blur.lua">
<OutputPath>automation\demos\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\raytracer.lua">
<OutputPath>automation\demos\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\argcheck.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\clipboard.lua">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\ffi.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\lfs.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\re.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\unicode.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\util.moon">
<OutputPath>automation\include\aegisub\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\cleantags.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\clipboard.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel-auto4.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\moonscript.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\re.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\unicode.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils-auto4.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.chm" />
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.exe" />
<RarContents Include="$(AegisubSourceBase)bin\DirectShowSource.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)bin\aegisub$(AegisubPlatformSuffix).exe" />
<RarContents Include="$(AegisubSourceBase)bin\avisynth.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)bin\csri\xy-vsfilter-aegisub$(PlatformArchitecture).dll" Condition="'$(AegisubUseCsri)' == 'HelperLibrary'">
<OutputPath>csri\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\devil.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)packages\win_installer\portable\config.json" />
<RarContents Include="$(AegisubSourceBase)bin\dictionaries\en_US.aff">
<OutputPath>dictionaries\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\dictionaries\en_US.dic">
<OutputPath>dictionaries\</OutputPath>
</RarContents>
</ItemGroup>
<ItemGroup>
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\icon.ico" />
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\side-logo.bmp" />
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\portable-comment.txt" />
</ItemGroup>
</Project>

View File

@ -1,127 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Automation">
<UniqueIdentifier>{2c1914de-647f-44ab-a698-a289b10ec29c}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Autoload">
<UniqueIdentifier>{862d477a-6db6-4ef0-b547-fa347b8d3aff}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Include">
<UniqueIdentifier>{d15cec98-3f6e-4713-a192-8cfdf1bac1d0}</UniqueIdentifier>
</Filter>
<Filter Include="CSRI">
<UniqueIdentifier>{61b13b0c-d018-48c6-8629-b44b83aa0dc8}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Tests">
<UniqueIdentifier>{8880eb0c-4bf7-424d-9a79-73c20c2dd169}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Demos">
<UniqueIdentifier>{743db065-17d0-4595-b241-9baa143dd68c}</UniqueIdentifier>
</Filter>
<Filter Include="AssDraw">
<UniqueIdentifier>{8e48f676-fdad-4b6e-a146-58a300ee528d}</UniqueIdentifier>
</Filter>
<Filter Include="Avisynth">
<UniqueIdentifier>{63aff439-dbde-4092-8dad-905a01c4be6c}</UniqueIdentifier>
</Filter>
<Filter Include="Dictionaries">
<UniqueIdentifier>{baf7aa4e-709d-4a03-aee1-b54749006b82}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<RarContents Include="$(AegisubSourceBase)automation\autoload\cleantags-autoload.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\kara-templater.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\karaoke-auto-leadin.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-1-edgeblur.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-2-mkfullwitdh.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\select-overlaps.moon">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\strip-tags.lua">
<Filter>Automation\Autoload</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\future-windy-blur.lua">
<Filter>Automation\Demos</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\raytracer.lua">
<Filter>Automation\Demos</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\clipboard.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\re.moon">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\unicode.moon">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\aegisub\util.moon">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\cleantags.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\clipboard.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel-auto4.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\moonscript.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\re.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\unicode.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils-auto4.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils.lua">
<Filter>Automation\Include</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\aegisub$(AegisubPlatformSuffix).exe" />
<RarContents Include="$(AegisubSourceBase)packages\win_installer\portable\config.json" />
<RarContents Include="$(AegisubSourceBase)bin\csri\xy-vsfilter-aegisub$(PlatformArchitecture).dll">
<Filter>CSRI</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.chm">
<Filter>AssDraw</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.exe">
<Filter>AssDraw</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\avisynth.dll">
<Filter>Avisynth</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\devil.dll">
<Filter>Avisynth</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\DirectShowSource.dll">
<Filter>Avisynth</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\dictionaries\en_US.aff">
<Filter>Dictionaries</Filter>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\dictionaries\en_US.dic">
<Filter>Dictionaries</Filter>
</RarContents>
</ItemGroup>
</Project>

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Aegisub project</_PropertySheetDisplayName>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<!-- Base configuration for VC projects -->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="'$(AegisubProjectType)'=='lib'">StaticLibrary</ConfigurationType>
<ConfigurationType Condition="'$(AegisubProjectType)'=='dll'">DynamicLibrary</ConfigurationType>
<ConfigurationType Condition="'$(AegisubProjectType)'=='exe'">Application</ConfigurationType>
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'" >true</UseDebugLibraries>
<UseDebugLibraries Condition="'$(Configuration)'=='Release'" >false</UseDebugLibraries>
<WholeProgramOptimization Condition="'$(Configuration)'=='Release'" >true</WholeProgramOptimization>
<CharacterSet >Unicode</CharacterSet>
<CharacterSet Condition="'$(AegisubMBCS)'=='true'" >MultiByte</CharacterSet>
<PlatformToolset >v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<!-- Default configuration -->
<ImportGroup Label="ExtensionSettings">
<Import Project="$(MSBuildThisFileDirectory)\DefaultConfiguration.props" />
<!-- Import the Aegisub user config file for non-Aegisub projects since
there doesn't seem to be any sort of solution-wide config file -->
<Import Project="$(MSBuildThisFileDirectory)\Aegisub\Aegisub.vcxproj.user"
Condition="'$(MSBuildProjectName)' != 'Aegisub' and Exists('$(MSBuildThisFileDirectory)\Aegisub\Aegisub.vcxproj.user')" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)userconfig\*.props" />
<Import Project="$(MSBuildThisFileDirectory)paths.props" />
<Import Project="$(MSBuildThisFileDirectory)Aegisub\standard-libraries.props" />
<Import Project="$(MSBuildThisFileDirectory)standard-settings.props" />
<Import Project="$(MSBuildThisFileDirectory)standard-outdirs.props" />
<Import Project="$(MSBuildThisFileDirectory)tasks.props" />
</ImportGroup>
<!-- The standard targets need to go last for all paths to be proper -->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Label="LocalAppDataPlatform" />
<ImportGroup Label="Targets">
<Import Project="$(MSBuildThisFileDirectory)install.targets" />
</ImportGroup>
</Project>

View File

@ -1,139 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A649D828-A399-4D81-ADEF-94CFDBA7847F}</ProjectGuid>
<RootNamespace>boost</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
BOOST_LOCALE_WITH_ICONV=1;
BOOST_LOCALE_WITH_ICU=1;
BOOST_LOCALE_NO_STD_BACKEND=1;
BOOST_LOCALE_NO_WINAPI_BACKEND=1;
BOOST_LOCALE_NO_POSIX_BACKEND=1;
BOOST_THREAD_BUILD_LIB;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<PropertyGroup>
<BuildGenerateSourcesTargets>
$(BuildGenerateSourcesTargets);
CopyBoostHeaders
</BuildGenerateSourcesTargets>
</PropertyGroup>
<!-- Have the target depend on the boost version.hpp file so it will usually
be skipped if the boost version hasn't changed since last build. -->
<Target
Name="CopyBoostHeaders"
Inputs="$(BoostPath)\libs\config\include\boost\version.hpp"
Outputs="$(AegisubSourceBase)include\boost\version.hpp"
>
<Message Importance="High" Text="Copy boost headers" />
<!-- All this cruft is to work around that despite what the documentation
claims, %(RecursiveDir) matches everything from the first * (not even
**) until the last / -->
<ItemGroup>
<BoostLibraries Include="$([System.IO.Directory]::GetDirectories(&quot;$(BoostPath)\libs&quot;))" />
<BoostIncludeDirs Include="%(BoostLibraries.Identity)\include\boost;$(BoostPath)\libs\numeric\conversion\include\boost" />
<Headers Include="%(BoostIncludeDirs.Identity)\**\*.*" />
</ItemGroup>
<Copy
SourceFiles="@(Headers)"
DestinationFiles="@(Headers->'$(AegisubSourceBase)include\boost\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
/>
</Target>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\icu\icu.vcxproj">
<Project>{f934ab7b-186b-4e96-b20c-a58c38c1b818}</Project>
</ProjectReference>
<ProjectReference Include="..\libiconv\libiconv.vcxproj">
<Project>{965054d2-44f2-4eb2-9879-051cc3d7ef08}</Project>
</ProjectReference>
</ItemGroup>
<!-- Source files -->
<ItemGroup>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\codecvt_error_category.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\operations.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\path.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\path_traits.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\portability.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\unique_path.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\utf8_codecvt_facet.cpp" />
<ClCompile Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\encoding\codepage.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\boundary.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\codecvt.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\collator.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\conversion.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\icu_backend.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\generator.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\ids.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\localization_backend.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\util\codecvt_converter.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\util\default_locale.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\util\info.cpp" />
<ClCompile Include="$(BoostPath)\libs\locale\src\util\locale_data.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\c_regex_traits.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\cpp_regex_traits.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\cregex.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\fileiter.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\icu.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\instances.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\posix_api.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\regex.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\regex_raw_buffer.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\regex_traits_defaults.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\static_mutex.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\usinstances.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\w32_regex_traits.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\wc_regex_traits.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\wide_posix_api.cpp" />
<ClCompile Include="$(BoostPath)\libs\regex\src\winstances.cpp" />
<ClCompile Include="$(BoostPath)\libs\system\src\error_code.cpp" />
<ClCompile Include="$(BoostPath)\libs\thread\src\win32\thread.cpp" />
<ClCompile Include="$(BoostPath)\libs\thread\src\win32\tss_pe.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)locale_stubs.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\encoding\conv.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\all_generator.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\cdata.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\codecvt.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_backend.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_util.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\predefined_formatters.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\uconv.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\ios_prop.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_hash.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_lambda.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\util\gregorian.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\util\iconv.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\util\locale_data.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\util\numeric.hpp" />
<ClInclude Include="$(BoostPath)\libs\locale\src\util\timezone.hpp" />
<ClInclude Include="$(BoostPath)\libs\regex\src\internals.hpp" />
</ItemGroup>
<ItemGroup>
<None Include="$(BoostPath)\libs\locale\src\encoding\iconv_codepage.ipp" />
<None Include="$(BoostPath)\libs\locale\src\encoding\uconv_codepage.ipp" />
<None Include="$(BoostPath)\libs\locale\src\encoding\wconv_codepage.ipp" />
</ItemGroup>
</Project>

View File

@ -1,222 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="regex">
<UniqueIdentifier>{e091980d-4374-41b8-aa61-1b07695e1b17}</UniqueIdentifier>
</Filter>
<Filter Include="system">
<UniqueIdentifier>{be9f03e9-74a3-4705-97ee-105a404d8a10}</UniqueIdentifier>
</Filter>
<Filter Include="filesystem">
<UniqueIdentifier>{98abe5b9-aca6-4145-ab6d-e472e24eb522}</UniqueIdentifier>
</Filter>
<Filter Include="locale">
<UniqueIdentifier>{0dae6521-8684-471f-8d62-9fe3b9295b0c}</UniqueIdentifier>
</Filter>
<Filter Include="locale\encoding">
<UniqueIdentifier>{8c30568b-1ab1-4815-82e0-127ad31732d7}</UniqueIdentifier>
</Filter>
<Filter Include="locale\icu">
<UniqueIdentifier>{47e5ad22-f37e-4512-a8e1-bcb5f04ad24b}</UniqueIdentifier>
</Filter>
<Filter Include="locale\shared">
<UniqueIdentifier>{52190269-979d-429b-a825-8e68eacc2274}</UniqueIdentifier>
</Filter>
<Filter Include="locale\util">
<UniqueIdentifier>{829ed5fb-dcba-4d3e-910c-33341e0e6379}</UniqueIdentifier>
</Filter>
<Filter Include="thread">
<UniqueIdentifier>{c76e09db-3a8e-4eaf-bb9a-6bac6945fd6f}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(BoostPath)\libs\regex\src\c_regex_traits.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\cpp_regex_traits.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\cregex.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\fileiter.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\instances.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\posix_api.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\regex.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\regex_raw_buffer.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\regex_traits_defaults.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\static_mutex.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\usinstances.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\w32_regex_traits.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\wc_regex_traits.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\wide_posix_api.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\winstances.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\system\src\error_code.cpp">
<Filter>system</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\codecvt_error_category.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\operations.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\path.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\path_traits.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\portability.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\unique_path.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\utf8_codecvt_facet.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\regex\src\icu.cpp">
<Filter>regex</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\boundary.cpp">
<Filter>locale\icu</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\codecvt.cpp">
<Filter>locale\icu</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\collator.cpp">
<Filter>locale\icu</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\conversion.cpp">
<Filter>locale\icu</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\icu\icu_backend.cpp">
<Filter>locale\icu</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\util\codecvt_converter.cpp">
<Filter>locale\util</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\util\default_locale.cpp">
<Filter>locale\util</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\util\info.cpp">
<Filter>locale\util</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\util\locale_data.cpp">
<Filter>locale\util</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\generator.cpp">
<Filter>locale\shared</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\ids.cpp">
<Filter>locale\shared</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\shared\localization_backend.cpp">
<Filter>locale\shared</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\locale\src\encoding\codepage.cpp">
<Filter>locale\encoding</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\thread\src\win32\thread.cpp">
<Filter>thread</Filter>
</ClCompile>
<ClCompile Include="$(BoostPath)\libs\thread\src\win32\tss_pe.cpp">
<Filter>thread</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)locale_stubs.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(BoostPath)\libs\regex\src\internals.hpp">
<Filter>regex</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\filesystem\src\windows_file_codecvt.hpp">
<Filter>filesystem</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\all_generator.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\cdata.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\codecvt.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_backend.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\icu_util.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\predefined_formatters.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\icu\uconv.hpp">
<Filter>locale\icu</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\util\gregorian.hpp">
<Filter>locale\util</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\util\iconv.hpp">
<Filter>locale\util</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\util\locale_data.hpp">
<Filter>locale\util</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\util\numeric.hpp">
<Filter>locale\util</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\util\timezone.hpp">
<Filter>locale\util</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\ios_prop.hpp">
<Filter>locale\shared</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_hash.hpp">
<Filter>locale\shared</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\shared\mo_lambda.hpp">
<Filter>locale\shared</Filter>
</ClInclude>
<ClInclude Include="$(BoostPath)\libs\locale\src\encoding\conv.hpp">
<Filter>locale\encoding</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="$(BoostPath)\libs\locale\src\encoding\iconv_codepage.ipp">
<Filter>locale\encoding</Filter>
</None>
<None Include="$(BoostPath)\libs\locale\src\encoding\uconv_codepage.ipp">
<Filter>locale\encoding</Filter>
</None>
<None Include="$(BoostPath)\libs\locale\src\encoding\wconv_codepage.ipp">
<Filter>locale\encoding</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -1,69 +0,0 @@
// Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
//
// Aegisub Project http://www.aegisub.org/
#include <boost/locale/gnu_gettext.hpp>
#include <boost/locale/localization_backend.hpp>
#include <unicode/locid.h>
// Boost.locale doesn't support partial builds of ICU, so provide stub versions
// of some of the things we don't use
namespace boost { namespace locale {
namespace impl_icu {
struct cdata {
icu::Locale locale;
std::string encoding;
bool utf8;
};
std::locale create_formatting(std::locale const& in, cdata const& cd, character_facet_type type) {
return in;
}
std::locale create_parsing(std::locale const& in, cdata const& cd, character_facet_type type) {
return in;
}
std::locale create_calendar(std::locale const& in, cdata const& cd) {
return in;
}
}
namespace gnu_gettext {
template<>
message_format<char> *create_messages_facet(messages_info const &info) {
return nullptr;
}
template<>
message_format<wchar_t> *create_messages_facet(messages_info const &info) {
return nullptr;
}
#ifdef BOOST_HAS_CHAR16_T
template<>
message_format<char16_t> *create_messages_facet(messages_info const &info) {
return nullptr;
}
#endif
#ifdef BOOST_HAS_CHAR32_T
template<>
message_format<char32_t> *create_messages_facet(messages_info const &info) {
return nullptr;
}
#endif
}
} }

View File

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- VC boilerplate -->
<PropertyGroup Label="Globals">
<ProjectGuid>{C832EAF3-860D-4373-A02C-933626B47A5E}</ProjectGuid>
<RootNamespace>csrihelper</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\csri\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>CSRI_NO_EXPORT;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SrcDir)include\;$(SrcDir)lib\;$(SrcDir)lib\win32\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(SrcDir)include</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(SrcDir)include\csri\*.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)include\csri\csri.h" />
<ClInclude Include="$(SrcDir)include\csri\fmtids.h" />
<ClInclude Include="$(SrcDir)include\csri\logging.h" />
<ClInclude Include="$(SrcDir)include\csri\openerr.h" />
<ClInclude Include="$(SrcDir)include\csri\stream.h" />
<ClInclude Include="$(SrcDir)include\subhelp.h" />
<ClInclude Include="$(SrcDir)include\visibility.h" />
<ClInclude Include="$(SrcDir)lib\csrilib.h" />
<ClInclude Include="$(SrcDir)lib\win32\csrilib_os.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)lib\list.c" />
<ClCompile Include="$(SrcDir)lib\win32\enumerate.c" />
<ClCompile Include="$(SrcDir)lib\wrap.c" />
<ClCompile Include="$(SrcDir)subhelp\logging.c" />
<ClCompile Include="$(SrcDir)subhelp\win32\openfile.c" />
</ItemGroup>
</Project>

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)include\csri\csri.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\csri\fmtids.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\csri\logging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\csri\openerr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\csri\stream.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\subhelp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\visibility.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)lib\csrilib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)lib\win32\csrilib_os.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)lib\list.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lib\win32\enumerate.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lib\wrap.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)subhelp\logging.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)subhelp\win32\openfile.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{D6BA6815-0AAC-48FA-8372-D32CDE8BF07A}</ProjectGuid>
<RootNamespace>expat</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\wxWidgets\src\expat\lib</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(SrcDir)</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(SrcDir)\expat.h" />
<InstallHeader Include="$(SrcDir)\expat_external.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)\ascii.h" />
<ClInclude Include="$(SrcDir)\asciitab.h" />
<ClInclude Include="$(SrcDir)\expat.h" />
<ClInclude Include="$(SrcDir)\expat_external.h" />
<ClInclude Include="$(SrcDir)\iasciitab.h" />
<ClInclude Include="$(SrcDir)\internal.h" />
<ClInclude Include="$(SrcDir)\latin1tab.h" />
<ClInclude Include="$(SrcDir)\nametab.h" />
<ClInclude Include="$(SrcDir)\utf8tab.h" />
<ClInclude Include="$(SrcDir)\winconfig.h" />
<ClInclude Include="$(SrcDir)\xmlrole.h" />
<ClInclude Include="$(SrcDir)\xmltok.h" />
<ClInclude Include="$(SrcDir)\xmltok_impl.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)\xmlparse.c" />
<ClCompile Include="$(SrcDir)\xmlrole.c" />
<ClCompile Include="$(SrcDir)\xmltok.c" />
<ClCompile Include="$(SrcDir)\xmltok_impl.c" />
<ClCompile Include="$(SrcDir)\xmltok_ns.c" />
</ItemGroup>
</Project>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@
#ifdef _WIN64
#include "config-x64.h"
#else
#include "config-x86.h"
#endif

View File

@ -1,54 +0,0 @@
platform='Win32'
suffix='x86'
if [[ $LIB =~ x64 ]]; then
platform='x64'
suffix='x64'
fi
./configure $@ \
--disable-avfilter \
--disable-avresample \
--disable-bzlib \
--disable-d3d11va \
--disable-dxva2 \
--disable-decoder=atrac3p,indeo2,indeo3,indeo4,indeo5,twinvq \
--disable-devices \
--disable-doc \
--disable-encoders \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-filters \
--disable-hwaccels \
--disable-muxers \
--disable-network \
--disable-postproc \
--disable-pthreads \
--disable-shared \
--enable-gpl \
--enable-runtime-cpudetect \
--enable-static \
--enable-small \
--enable-x86asm \
--x86asmexe=yasm \
--enable-zlib \
--extra-cflags=-D_SYSCRT \
--extra-cflags=-I../../include \
--extra-cflags=-MD \
--extra-cflags=-wd4005 \
--extra-cflags=-wd4189 \
--extra-ldflags=-LIBPATH:../../lib/$platform/Release \
--toolchain=msvc
mv config.asm ../../build/ffmpeg/config-$suffix.asm
mv config.h ../../build/ffmpeg/config-$suffix.h
mv libavcodec/bsf_list.c ../../build/ffmpeg/libavcodec/bsf_list.c
mv libavcodec/codec_list.c ../../build/ffmpeg/libavcodec/codec_list.c
mv libavcodec/parser_list.c ../../build/ffmpeg/libavcodec/parser_list.c
mv libavdevice/indev_list.c ../../build/ffmpeg/libavdevice/indev_list.c
mv libavdevice/outdev_list.c ../../build/ffmpeg/libavdevice/outdev_list.c
mv libavformat/demuxer_list.c ../../build/ffmpeg/libavformat/demuxer_list.c
mv libavformat/muxer_list.c ../../build/ffmpeg/libavformat/muxer_list.c
mv libavformat/protocol_list.c ../../build/ffmpeg/libavformat/protocol_list.c
mv libavutil/avconfig.h ../../build/ffmpeg/libavutil/avconfig.h
mv libavutil/ffversion.h ../../build/ffmpeg/libavutil/ffversion.h

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
rm -f make-dry
make -n > make-dry
grep '^cl' make-dry \
| sed 's/.*\(lib[^ ]*.c\) .*/\1/' \
| sed 's/\//\\/g' \
| sed 's/\(.*\)/<ClCompile Include="$(FfmpegSrcDir)\\\1" \/>/' \
| sort
echo
grep '^yasm' make-dry \
| sed 's/.*\(lib[^ ]*.asm\) .*/\1/' \
| sed 's/\//\\/g' \
| sed 's/\(.*\)/<Yasm Include="$(FfmpegSrcDir)\\\1" \/>/' \
| sort

View File

@ -1,33 +0,0 @@
static const AVBitStreamFilter * const bitstream_filters[] = {
&ff_aac_adtstoasc_bsf,
&ff_av1_metadata_bsf,
&ff_chomp_bsf,
&ff_dump_extradata_bsf,
&ff_dca_core_bsf,
&ff_eac3_core_bsf,
&ff_extract_extradata_bsf,
&ff_filter_units_bsf,
&ff_h264_metadata_bsf,
&ff_h264_mp4toannexb_bsf,
&ff_h264_redundant_pps_bsf,
&ff_hapqa_extract_bsf,
&ff_hevc_metadata_bsf,
&ff_hevc_mp4toannexb_bsf,
&ff_imx_dump_header_bsf,
&ff_mjpeg2jpeg_bsf,
&ff_mjpega_dump_header_bsf,
&ff_mp3_header_decompress_bsf,
&ff_mpeg2_metadata_bsf,
&ff_mpeg4_unpack_bframes_bsf,
&ff_mov2textsub_bsf,
&ff_noise_bsf,
&ff_null_bsf,
&ff_prores_metadata_bsf,
&ff_remove_extradata_bsf,
&ff_text2movsub_bsf,
&ff_trace_headers_bsf,
&ff_vp9_metadata_bsf,
&ff_vp9_raw_reorder_bsf,
&ff_vp9_superframe_bsf,
&ff_vp9_superframe_split_bsf,
NULL };

View File

@ -1,426 +0,0 @@
static const AVCodec * const codec_list[] = {
&ff_aasc_decoder,
&ff_aic_decoder,
&ff_alias_pix_decoder,
&ff_amv_decoder,
&ff_anm_decoder,
&ff_ansi_decoder,
&ff_apng_decoder,
&ff_asv1_decoder,
&ff_asv2_decoder,
&ff_aura_decoder,
&ff_aura2_decoder,
&ff_avrp_decoder,
&ff_avrn_decoder,
&ff_avs_decoder,
&ff_avui_decoder,
&ff_ayuv_decoder,
&ff_bethsoftvid_decoder,
&ff_bfi_decoder,
&ff_bink_decoder,
&ff_bitpacked_decoder,
&ff_bmp_decoder,
&ff_bmv_video_decoder,
&ff_brender_pix_decoder,
&ff_c93_decoder,
&ff_cavs_decoder,
&ff_cdgraphics_decoder,
&ff_cdxl_decoder,
&ff_cfhd_decoder,
&ff_cinepak_decoder,
&ff_clearvideo_decoder,
&ff_cljr_decoder,
&ff_cllc_decoder,
&ff_comfortnoise_decoder,
&ff_cpia_decoder,
&ff_cscd_decoder,
&ff_cyuv_decoder,
&ff_dds_decoder,
&ff_dfa_decoder,
&ff_dirac_decoder,
&ff_dnxhd_decoder,
&ff_dpx_decoder,
&ff_dsicinvideo_decoder,
&ff_dvaudio_decoder,
&ff_dvvideo_decoder,
&ff_dxa_decoder,
&ff_dxtory_decoder,
&ff_dxv_decoder,
&ff_eacmv_decoder,
&ff_eamad_decoder,
&ff_eatgq_decoder,
&ff_eatgv_decoder,
&ff_eatqi_decoder,
&ff_eightbps_decoder,
&ff_eightsvx_exp_decoder,
&ff_eightsvx_fib_decoder,
&ff_escape124_decoder,
&ff_escape130_decoder,
&ff_exr_decoder,
&ff_ffv1_decoder,
&ff_ffvhuff_decoder,
&ff_fic_decoder,
&ff_fits_decoder,
&ff_flashsv_decoder,
&ff_flashsv2_decoder,
&ff_flic_decoder,
&ff_flv_decoder,
&ff_fmvc_decoder,
&ff_fourxm_decoder,
&ff_fraps_decoder,
&ff_frwu_decoder,
&ff_g2m_decoder,
&ff_gdv_decoder,
&ff_gif_decoder,
&ff_h261_decoder,
&ff_h263_decoder,
&ff_h263i_decoder,
&ff_h263p_decoder,
&ff_h264_decoder,
&ff_hap_decoder,
&ff_hevc_decoder,
&ff_hnm4_video_decoder,
&ff_hq_hqa_decoder,
&ff_hqx_decoder,
&ff_huffyuv_decoder,
&ff_idcin_decoder,
&ff_iff_ilbm_decoder,
&ff_imm4_decoder,
&ff_interplay_video_decoder,
&ff_jpeg2000_decoder,
&ff_jpegls_decoder,
&ff_jv_decoder,
&ff_kgv1_decoder,
&ff_kmvc_decoder,
&ff_lagarith_decoder,
&ff_loco_decoder,
&ff_m101_decoder,
&ff_magicyuv_decoder,
&ff_mdec_decoder,
&ff_mimic_decoder,
&ff_mjpeg_decoder,
&ff_mjpegb_decoder,
&ff_mmvideo_decoder,
&ff_motionpixels_decoder,
&ff_mpeg1video_decoder,
&ff_mpeg2video_decoder,
&ff_mpeg4_decoder,
&ff_mpegvideo_decoder,
&ff_msa1_decoder,
&ff_mscc_decoder,
&ff_msmpeg4v1_decoder,
&ff_msmpeg4v2_decoder,
&ff_msmpeg4v3_decoder,
&ff_msrle_decoder,
&ff_mss1_decoder,
&ff_mss2_decoder,
&ff_msvideo1_decoder,
&ff_mszh_decoder,
&ff_mts2_decoder,
&ff_mvc1_decoder,
&ff_mvc2_decoder,
&ff_mwsc_decoder,
&ff_mxpeg_decoder,
&ff_nuv_decoder,
&ff_paf_video_decoder,
&ff_pam_decoder,
&ff_pbm_decoder,
&ff_pcx_decoder,
&ff_pgm_decoder,
&ff_pgmyuv_decoder,
&ff_pictor_decoder,
&ff_pixlet_decoder,
&ff_png_decoder,
&ff_ppm_decoder,
&ff_prores_decoder,
&ff_prosumer_decoder,
&ff_psd_decoder,
&ff_ptx_decoder,
&ff_qdraw_decoder,
&ff_qpeg_decoder,
&ff_qtrle_decoder,
&ff_r10k_decoder,
&ff_r210_decoder,
&ff_rasc_decoder,
&ff_rawvideo_decoder,
&ff_rl2_decoder,
&ff_roq_decoder,
&ff_rpza_decoder,
&ff_rscc_decoder,
&ff_rv10_decoder,
&ff_rv20_decoder,
&ff_rv30_decoder,
&ff_rv40_decoder,
&ff_s302m_decoder,
&ff_sanm_decoder,
&ff_scpr_decoder,
&ff_screenpresso_decoder,
&ff_sdx2_dpcm_decoder,
&ff_sgi_decoder,
&ff_sgirle_decoder,
&ff_sheervideo_decoder,
&ff_smacker_decoder,
&ff_smc_decoder,
&ff_smvjpeg_decoder,
&ff_snow_decoder,
&ff_sp5x_decoder,
&ff_speedhq_decoder,
&ff_srgc_decoder,
&ff_sunrast_decoder,
&ff_svq1_decoder,
&ff_svq3_decoder,
&ff_targa_decoder,
&ff_targa_y216_decoder,
&ff_tdsc_decoder,
&ff_theora_decoder,
&ff_thp_decoder,
&ff_tiertexseqvideo_decoder,
&ff_tiff_decoder,
&ff_tmv_decoder,
&ff_truemotion1_decoder,
&ff_truemotion2_decoder,
&ff_truemotion2rt_decoder,
&ff_tscc_decoder,
&ff_tscc2_decoder,
&ff_txd_decoder,
&ff_ulti_decoder,
&ff_utvideo_decoder,
&ff_v210_decoder,
&ff_v210x_decoder,
&ff_v308_decoder,
&ff_v408_decoder,
&ff_v410_decoder,
&ff_vb_decoder,
&ff_vble_decoder,
&ff_vc1_decoder,
&ff_vc1image_decoder,
&ff_vcr1_decoder,
&ff_vmdvideo_decoder,
&ff_vmnc_decoder,
&ff_vp3_decoder,
&ff_vp5_decoder,
&ff_vp6_decoder,
&ff_vp6a_decoder,
&ff_vp6f_decoder,
&ff_vp7_decoder,
&ff_vp8_decoder,
&ff_vp9_decoder,
&ff_vqa_decoder,
&ff_webp_decoder,
&ff_wcmv_decoder,
&ff_wrapped_avframe_decoder,
&ff_wmv1_decoder,
&ff_wmv2_decoder,
&ff_wmv3_decoder,
&ff_wmv3image_decoder,
&ff_wnv1_decoder,
&ff_xan_wc3_decoder,
&ff_xan_wc4_decoder,
&ff_xbm_decoder,
&ff_xface_decoder,
&ff_xl_decoder,
&ff_xpm_decoder,
&ff_xwd_decoder,
&ff_y41p_decoder,
&ff_ylc_decoder,
&ff_yop_decoder,
&ff_yuv4_decoder,
&ff_zero12v_decoder,
&ff_zerocodec_decoder,
&ff_zlib_decoder,
&ff_zmbv_decoder,
&ff_aac_decoder,
&ff_aac_fixed_decoder,
&ff_aac_latm_decoder,
&ff_ac3_decoder,
&ff_ac3_fixed_decoder,
&ff_alac_decoder,
&ff_als_decoder,
&ff_amrnb_decoder,
&ff_amrwb_decoder,
&ff_ape_decoder,
&ff_aptx_decoder,
&ff_aptx_hd_decoder,
&ff_atrac1_decoder,
&ff_atrac3_decoder,
&ff_atrac3al_decoder,
&ff_atrac3pal_decoder,
&ff_atrac9_decoder,
&ff_binkaudio_dct_decoder,
&ff_binkaudio_rdft_decoder,
&ff_bmv_audio_decoder,
&ff_cook_decoder,
&ff_dca_decoder,
&ff_dolby_e_decoder,
&ff_dsd_lsbf_decoder,
&ff_dsd_msbf_decoder,
&ff_dsd_lsbf_planar_decoder,
&ff_dsd_msbf_planar_decoder,
&ff_dsicinaudio_decoder,
&ff_dss_sp_decoder,
&ff_dst_decoder,
&ff_eac3_decoder,
&ff_evrc_decoder,
&ff_ffwavesynth_decoder,
&ff_flac_decoder,
&ff_g723_1_decoder,
&ff_g729_decoder,
&ff_gsm_decoder,
&ff_gsm_ms_decoder,
&ff_iac_decoder,
&ff_ilbc_decoder,
&ff_imc_decoder,
&ff_interplay_acm_decoder,
&ff_mace3_decoder,
&ff_mace6_decoder,
&ff_metasound_decoder,
&ff_mlp_decoder,
&ff_mp1_decoder,
&ff_mp1float_decoder,
&ff_mp2_decoder,
&ff_mp2float_decoder,
&ff_mp3float_decoder,
&ff_mp3_decoder,
&ff_mp3adufloat_decoder,
&ff_mp3adu_decoder,
&ff_mp3on4float_decoder,
&ff_mp3on4_decoder,
&ff_mpc7_decoder,
&ff_mpc8_decoder,
&ff_nellymoser_decoder,
&ff_on2avc_decoder,
&ff_opus_decoder,
&ff_paf_audio_decoder,
&ff_qcelp_decoder,
&ff_qdm2_decoder,
&ff_qdmc_decoder,
&ff_ra_144_decoder,
&ff_ra_288_decoder,
&ff_ralf_decoder,
&ff_sbc_decoder,
&ff_shorten_decoder,
&ff_sipr_decoder,
&ff_smackaud_decoder,
&ff_sonic_decoder,
&ff_tak_decoder,
&ff_truehd_decoder,
&ff_truespeech_decoder,
&ff_tta_decoder,
&ff_vmdaudio_decoder,
&ff_vorbis_decoder,
&ff_wavpack_decoder,
&ff_wmalossless_decoder,
&ff_wmapro_decoder,
&ff_wmav1_decoder,
&ff_wmav2_decoder,
&ff_wmavoice_decoder,
&ff_ws_snd1_decoder,
&ff_xma1_decoder,
&ff_xma2_decoder,
&ff_pcm_alaw_decoder,
&ff_pcm_bluray_decoder,
&ff_pcm_dvd_decoder,
&ff_pcm_f16le_decoder,
&ff_pcm_f24le_decoder,
&ff_pcm_f32be_decoder,
&ff_pcm_f32le_decoder,
&ff_pcm_f64be_decoder,
&ff_pcm_f64le_decoder,
&ff_pcm_lxf_decoder,
&ff_pcm_mulaw_decoder,
&ff_pcm_s8_decoder,
&ff_pcm_s8_planar_decoder,
&ff_pcm_s16be_decoder,
&ff_pcm_s16be_planar_decoder,
&ff_pcm_s16le_decoder,
&ff_pcm_s16le_planar_decoder,
&ff_pcm_s24be_decoder,
&ff_pcm_s24daud_decoder,
&ff_pcm_s24le_decoder,
&ff_pcm_s24le_planar_decoder,
&ff_pcm_s32be_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_s32le_planar_decoder,
&ff_pcm_s64be_decoder,
&ff_pcm_s64le_decoder,
&ff_pcm_u8_decoder,
&ff_pcm_u16be_decoder,
&ff_pcm_u16le_decoder,
&ff_pcm_u24be_decoder,
&ff_pcm_u24le_decoder,
&ff_pcm_u32be_decoder,
&ff_pcm_u32le_decoder,
&ff_pcm_vidc_decoder,
&ff_pcm_zork_decoder,
&ff_gremlin_dpcm_decoder,
&ff_interplay_dpcm_decoder,
&ff_roq_dpcm_decoder,
&ff_sol_dpcm_decoder,
&ff_xan_dpcm_decoder,
&ff_adpcm_4xm_decoder,
&ff_adpcm_adx_decoder,
&ff_adpcm_afc_decoder,
&ff_adpcm_aica_decoder,
&ff_adpcm_ct_decoder,
&ff_adpcm_dtk_decoder,
&ff_adpcm_ea_decoder,
&ff_adpcm_ea_maxis_xa_decoder,
&ff_adpcm_ea_r1_decoder,
&ff_adpcm_ea_r2_decoder,
&ff_adpcm_ea_r3_decoder,
&ff_adpcm_ea_xas_decoder,
&ff_adpcm_g722_decoder,
&ff_adpcm_g726_decoder,
&ff_adpcm_g726le_decoder,
&ff_adpcm_ima_amv_decoder,
&ff_adpcm_ima_apc_decoder,
&ff_adpcm_ima_dat4_decoder,
&ff_adpcm_ima_dk3_decoder,
&ff_adpcm_ima_dk4_decoder,
&ff_adpcm_ima_ea_eacs_decoder,
&ff_adpcm_ima_ea_sead_decoder,
&ff_adpcm_ima_iss_decoder,
&ff_adpcm_ima_oki_decoder,
&ff_adpcm_ima_qt_decoder,
&ff_adpcm_ima_rad_decoder,
&ff_adpcm_ima_smjpeg_decoder,
&ff_adpcm_ima_wav_decoder,
&ff_adpcm_ima_ws_decoder,
&ff_adpcm_ms_decoder,
&ff_adpcm_mtaf_decoder,
&ff_adpcm_psx_decoder,
&ff_adpcm_sbpro_2_decoder,
&ff_adpcm_sbpro_3_decoder,
&ff_adpcm_sbpro_4_decoder,
&ff_adpcm_swf_decoder,
&ff_adpcm_thp_decoder,
&ff_adpcm_thp_le_decoder,
&ff_adpcm_vima_decoder,
&ff_adpcm_xa_decoder,
&ff_adpcm_yamaha_decoder,
&ff_ssa_decoder,
&ff_ass_decoder,
&ff_ccaption_decoder,
&ff_dvbsub_decoder,
&ff_dvdsub_decoder,
&ff_jacosub_decoder,
&ff_microdvd_decoder,
&ff_movtext_decoder,
&ff_mpl2_decoder,
&ff_pgssub_decoder,
&ff_pjs_decoder,
&ff_realtext_decoder,
&ff_sami_decoder,
&ff_srt_decoder,
&ff_stl_decoder,
&ff_subrip_decoder,
&ff_subviewer_decoder,
&ff_subviewer1_decoder,
&ff_text_decoder,
&ff_vplayer_decoder,
&ff_webvtt_decoder,
&ff_xsub_decoder,
&ff_bintext_decoder,
&ff_xbin_decoder,
&ff_idf_decoder,
NULL };

View File

@ -1,45 +0,0 @@
static const AVCodecParser * const parser_list[] = {
&ff_aac_parser,
&ff_aac_latm_parser,
&ff_ac3_parser,
&ff_adx_parser,
&ff_av1_parser,
&ff_avs2_parser,
&ff_bmp_parser,
&ff_cavsvideo_parser,
&ff_cook_parser,
&ff_dca_parser,
&ff_dirac_parser,
&ff_dnxhd_parser,
&ff_dpx_parser,
&ff_dvaudio_parser,
&ff_dvbsub_parser,
&ff_dvdsub_parser,
&ff_dvd_nav_parser,
&ff_flac_parser,
&ff_g729_parser,
&ff_gsm_parser,
&ff_h261_parser,
&ff_h263_parser,
&ff_h264_parser,
&ff_hevc_parser,
&ff_mjpeg_parser,
&ff_mlp_parser,
&ff_mpeg4video_parser,
&ff_mpegaudio_parser,
&ff_mpegvideo_parser,
&ff_opus_parser,
&ff_png_parser,
&ff_pnm_parser,
&ff_rv30_parser,
&ff_rv40_parser,
&ff_sbc_parser,
&ff_sipr_parser,
&ff_tak_parser,
&ff_vc1_parser,
&ff_vorbis_parser,
&ff_vp3_parser,
&ff_vp8_parser,
&ff_vp9_parser,
&ff_xma_parser,
NULL };

View File

@ -1,2 +0,0 @@
static const AVInputFormat * const indev_list[] = {
NULL };

View File

@ -1,2 +0,0 @@
static const AVOutputFormat * const outdev_list[] = {
NULL };

View File

@ -1,287 +0,0 @@
static const AVInputFormat * const demuxer_list[] = {
&ff_aa_demuxer,
&ff_aac_demuxer,
&ff_ac3_demuxer,
&ff_acm_demuxer,
&ff_act_demuxer,
&ff_adf_demuxer,
&ff_adp_demuxer,
&ff_ads_demuxer,
&ff_adx_demuxer,
&ff_aea_demuxer,
&ff_afc_demuxer,
&ff_aiff_demuxer,
&ff_aix_demuxer,
&ff_amr_demuxer,
&ff_amrnb_demuxer,
&ff_amrwb_demuxer,
&ff_anm_demuxer,
&ff_apc_demuxer,
&ff_ape_demuxer,
&ff_apng_demuxer,
&ff_aptx_demuxer,
&ff_aptx_hd_demuxer,
&ff_aqtitle_demuxer,
&ff_asf_demuxer,
&ff_asf_o_demuxer,
&ff_ass_demuxer,
&ff_ast_demuxer,
&ff_au_demuxer,
&ff_avi_demuxer,
&ff_avr_demuxer,
&ff_avs_demuxer,
&ff_avs2_demuxer,
&ff_bethsoftvid_demuxer,
&ff_bfi_demuxer,
&ff_bintext_demuxer,
&ff_bink_demuxer,
&ff_bit_demuxer,
&ff_bmv_demuxer,
&ff_bfstm_demuxer,
&ff_brstm_demuxer,
&ff_boa_demuxer,
&ff_c93_demuxer,
&ff_caf_demuxer,
&ff_cavsvideo_demuxer,
&ff_cdg_demuxer,
&ff_cdxl_demuxer,
&ff_cine_demuxer,
&ff_codec2_demuxer,
&ff_codec2raw_demuxer,
&ff_concat_demuxer,
&ff_data_demuxer,
&ff_daud_demuxer,
&ff_dcstr_demuxer,
&ff_dfa_demuxer,
&ff_dirac_demuxer,
&ff_dnxhd_demuxer,
&ff_dsf_demuxer,
&ff_dsicin_demuxer,
&ff_dss_demuxer,
&ff_dts_demuxer,
&ff_dtshd_demuxer,
&ff_dv_demuxer,
&ff_dvbsub_demuxer,
&ff_dvbtxt_demuxer,
&ff_dxa_demuxer,
&ff_ea_demuxer,
&ff_ea_cdata_demuxer,
&ff_eac3_demuxer,
&ff_epaf_demuxer,
&ff_ffmetadata_demuxer,
&ff_filmstrip_demuxer,
&ff_fits_demuxer,
&ff_flac_demuxer,
&ff_flic_demuxer,
&ff_flv_demuxer,
&ff_live_flv_demuxer,
&ff_fourxm_demuxer,
&ff_frm_demuxer,
&ff_fsb_demuxer,
&ff_g722_demuxer,
&ff_g723_1_demuxer,
&ff_g726_demuxer,
&ff_g726le_demuxer,
&ff_g729_demuxer,
&ff_gdv_demuxer,
&ff_genh_demuxer,
&ff_gif_demuxer,
&ff_gsm_demuxer,
&ff_gxf_demuxer,
&ff_h261_demuxer,
&ff_h263_demuxer,
&ff_h264_demuxer,
&ff_hevc_demuxer,
&ff_hls_demuxer,
&ff_hnm_demuxer,
&ff_ico_demuxer,
&ff_idcin_demuxer,
&ff_idf_demuxer,
&ff_iff_demuxer,
&ff_ilbc_demuxer,
&ff_image2_demuxer,
&ff_image2pipe_demuxer,
&ff_image2_alias_pix_demuxer,
&ff_image2_brender_pix_demuxer,
&ff_ingenient_demuxer,
&ff_ipmovie_demuxer,
&ff_ircam_demuxer,
&ff_iss_demuxer,
&ff_iv8_demuxer,
&ff_ivf_demuxer,
&ff_ivr_demuxer,
&ff_jacosub_demuxer,
&ff_jv_demuxer,
&ff_lmlm4_demuxer,
&ff_loas_demuxer,
&ff_lrc_demuxer,
&ff_lvf_demuxer,
&ff_lxf_demuxer,
&ff_m4v_demuxer,
&ff_matroska_demuxer,
&ff_mgsts_demuxer,
&ff_microdvd_demuxer,
&ff_mjpeg_demuxer,
&ff_mjpeg_2000_demuxer,
&ff_mlp_demuxer,
&ff_mlv_demuxer,
&ff_mm_demuxer,
&ff_mmf_demuxer,
&ff_mov_demuxer,
&ff_mp3_demuxer,
&ff_mpc_demuxer,
&ff_mpc8_demuxer,
&ff_mpegps_demuxer,
&ff_mpegts_demuxer,
&ff_mpegtsraw_demuxer,
&ff_mpegvideo_demuxer,
&ff_mpjpeg_demuxer,
&ff_mpl2_demuxer,
&ff_mpsub_demuxer,
&ff_msf_demuxer,
&ff_msnwc_tcp_demuxer,
&ff_mtaf_demuxer,
&ff_mtv_demuxer,
&ff_musx_demuxer,
&ff_mv_demuxer,
&ff_mvi_demuxer,
&ff_mxf_demuxer,
&ff_mxg_demuxer,
&ff_nc_demuxer,
&ff_nistsphere_demuxer,
&ff_nsp_demuxer,
&ff_nsv_demuxer,
&ff_nut_demuxer,
&ff_nuv_demuxer,
&ff_ogg_demuxer,
&ff_oma_demuxer,
&ff_paf_demuxer,
&ff_pcm_alaw_demuxer,
&ff_pcm_mulaw_demuxer,
&ff_pcm_vidc_demuxer,
&ff_pcm_f64be_demuxer,
&ff_pcm_f64le_demuxer,
&ff_pcm_f32be_demuxer,
&ff_pcm_f32le_demuxer,
&ff_pcm_s32be_demuxer,
&ff_pcm_s32le_demuxer,
&ff_pcm_s24be_demuxer,
&ff_pcm_s24le_demuxer,
&ff_pcm_s16be_demuxer,
&ff_pcm_s16le_demuxer,
&ff_pcm_s8_demuxer,
&ff_pcm_u32be_demuxer,
&ff_pcm_u32le_demuxer,
&ff_pcm_u24be_demuxer,
&ff_pcm_u24le_demuxer,
&ff_pcm_u16be_demuxer,
&ff_pcm_u16le_demuxer,
&ff_pcm_u8_demuxer,
&ff_pjs_demuxer,
&ff_pmp_demuxer,
&ff_pva_demuxer,
&ff_pvf_demuxer,
&ff_qcp_demuxer,
&ff_r3d_demuxer,
&ff_rawvideo_demuxer,
&ff_realtext_demuxer,
&ff_redspark_demuxer,
&ff_rl2_demuxer,
&ff_rm_demuxer,
&ff_roq_demuxer,
&ff_rpl_demuxer,
&ff_rsd_demuxer,
&ff_rso_demuxer,
&ff_s337m_demuxer,
&ff_sami_demuxer,
&ff_sbc_demuxer,
&ff_sbg_demuxer,
&ff_scc_demuxer,
&ff_sdr2_demuxer,
&ff_sds_demuxer,
&ff_sdx_demuxer,
&ff_segafilm_demuxer,
&ff_ser_demuxer,
&ff_shorten_demuxer,
&ff_siff_demuxer,
&ff_sln_demuxer,
&ff_smacker_demuxer,
&ff_smjpeg_demuxer,
&ff_smush_demuxer,
&ff_sol_demuxer,
&ff_sox_demuxer,
&ff_spdif_demuxer,
&ff_srt_demuxer,
&ff_str_demuxer,
&ff_stl_demuxer,
&ff_subviewer1_demuxer,
&ff_subviewer_demuxer,
&ff_sup_demuxer,
&ff_svag_demuxer,
&ff_swf_demuxer,
&ff_tak_demuxer,
&ff_tedcaptions_demuxer,
&ff_thp_demuxer,
&ff_threedostr_demuxer,
&ff_tiertexseq_demuxer,
&ff_tmv_demuxer,
&ff_truehd_demuxer,
&ff_tta_demuxer,
&ff_txd_demuxer,
&ff_tty_demuxer,
&ff_ty_demuxer,
&ff_v210_demuxer,
&ff_v210x_demuxer,
&ff_vag_demuxer,
&ff_vc1_demuxer,
&ff_vc1t_demuxer,
&ff_vivo_demuxer,
&ff_vmd_demuxer,
&ff_vobsub_demuxer,
&ff_voc_demuxer,
&ff_vpk_demuxer,
&ff_vplayer_demuxer,
&ff_vqf_demuxer,
&ff_w64_demuxer,
&ff_wav_demuxer,
&ff_wc3_demuxer,
&ff_webm_dash_manifest_demuxer,
&ff_webvtt_demuxer,
&ff_wsaud_demuxer,
&ff_wsd_demuxer,
&ff_wsvqa_demuxer,
&ff_wtv_demuxer,
&ff_wve_demuxer,
&ff_wv_demuxer,
&ff_xa_demuxer,
&ff_xbin_demuxer,
&ff_xmv_demuxer,
&ff_xvag_demuxer,
&ff_xwma_demuxer,
&ff_yop_demuxer,
&ff_yuv4mpegpipe_demuxer,
&ff_image_bmp_pipe_demuxer,
&ff_image_dds_pipe_demuxer,
&ff_image_dpx_pipe_demuxer,
&ff_image_exr_pipe_demuxer,
&ff_image_j2k_pipe_demuxer,
&ff_image_jpeg_pipe_demuxer,
&ff_image_jpegls_pipe_demuxer,
&ff_image_pam_pipe_demuxer,
&ff_image_pbm_pipe_demuxer,
&ff_image_pcx_pipe_demuxer,
&ff_image_pgmyuv_pipe_demuxer,
&ff_image_pgm_pipe_demuxer,
&ff_image_pictor_pipe_demuxer,
&ff_image_png_pipe_demuxer,
&ff_image_ppm_pipe_demuxer,
&ff_image_psd_pipe_demuxer,
&ff_image_qdraw_pipe_demuxer,
&ff_image_sgi_pipe_demuxer,
&ff_image_svg_pipe_demuxer,
&ff_image_sunrast_pipe_demuxer,
&ff_image_tiff_pipe_demuxer,
&ff_image_webp_pipe_demuxer,
&ff_image_xpm_pipe_demuxer,
&ff_image_xwd_pipe_demuxer,
NULL };

View File

@ -1,2 +0,0 @@
static const AVOutputFormat * const muxer_list[] = {
NULL };

View File

@ -1,14 +0,0 @@
static const URLProtocol * const url_protocols[] = {
&ff_async_protocol,
&ff_cache_protocol,
&ff_concat_protocol,
&ff_crypto_protocol,
&ff_data_protocol,
&ff_file_protocol,
&ff_hls_protocol,
&ff_md5_protocol,
&ff_pipe_protocol,
&ff_prompeg_protocol,
&ff_subfile_protocol,
&ff_tee_protocol,
NULL };

View File

@ -1,6 +0,0 @@
/* Generated by ffmpeg configure */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0
#define AV_HAVE_FAST_UNALIGNED 1
#endif /* AVUTIL_AVCONFIG_H */

View File

@ -1,4 +0,0 @@
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
#define FFMPEG_VERSION "N-74177-g802e512"
#endif /* AVUTIL_FFVERSION_H */

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{AA137613-96A1-4388-8905-71345B4F8F87}</ProjectGuid>
<RootNamespace>ffms2</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(FfmsSrcDir)\include;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
WITH_SWRESAMPLE;
FFMS_EXPORTS;
FFMS_STATIC;
_CRT_SECURE_NO_WARNINGS;
_CRT_NONSTDC_NO_DEPRECATE;
_SCL_SECURE_NO_WARNINGS;
__STDC_CONSTANT_MACROS;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<DisableSpecificWarnings>4250;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AegisubLibraryDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<InstallHeader>
<HeaderRoot>$(FfmsSrcDir)\include</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(FfmsSrcDir)\include\ffms.h" />
<InstallHeader Include="$(FfmsSrcDir)\include\ffmscompat.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(FfmsSrcDir)\src\avisynth\avisynth.cpp" />
<None Include="$(FfmsSrcDir)\src\avisynth\avssources.cpp" />
<None Include="$(FfmsSrcDir)\src\avisynth\avsutils.cpp" />
<None Include="$(FfmsSrcDir)\src\avisynth\ffswscale.cpp" />
<None Include="$(FfmsSrcDir)\src\vapoursynth\vapoursource.cpp" />
<None Include="$(FfmsSrcDir)\src\vapoursynth\vapoursynth.cpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(FfmsSrcDir)\src\core\audiosource.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\ffms.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\filehandle.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\indexing.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\track.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\utils.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\videosource.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\videoutils.cpp" />
<ClCompile Include="$(FfmsSrcDir)\src\core\zipfile.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(FfmsSrcDir)\include\ffms.h" />
<ClInclude Include="$(FfmsSrcDir)\include\ffmscompat.h" />
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avisynth.h" />
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avssources.h" />
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avsutils.h" />
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\ffswscale.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\audiosource.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\filehandle.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\indexing.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\track.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\utils.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\videosource.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\videoutils.h" />
<ClInclude Include="$(FfmsSrcDir)\src\core\zipfile.h" />
<ClInclude Include="$(FfmsSrcDir)\src\vapoursynth\VapourSynth.h" />
<ClInclude Include="$(FfmsSrcDir)\src\vapoursynth\vapoursource.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ffmpeg\ffmpeg.vcxproj">
<Project>{f934ab7b-186b-4e96-b20c-a58c38c1b819}</Project>
</ProjectReference>
<ProjectReference Include="..\zlib\zlib.vcxproj">
<Project>{10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee}</Project>
</ProjectReference>
</ItemGroup>
</Project>

View File

@ -1,126 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Audio">
<UniqueIdentifier>{ed366ac0-ef41-4c15-b40e-4db3c76b17db}</UniqueIdentifier>
</Filter>
<Filter Include="Indexing">
<UniqueIdentifier>{a5f150b5-ae8e-448c-a724-bbdca106ea10}</UniqueIdentifier>
</Filter>
<Filter Include="Video">
<UniqueIdentifier>{14a03221-39fc-4803-b677-e90f2290666b}</UniqueIdentifier>
</Filter>
<Filter Include="API">
<UniqueIdentifier>{132a91ed-71ff-4574-aba8-09d496869832}</UniqueIdentifier>
</Filter>
<Filter Include="Utils">
<UniqueIdentifier>{7e197647-eb8c-44bc-b6d8-6368b242478c}</UniqueIdentifier>
</Filter>
<Filter Include="Avisynth">
<UniqueIdentifier>{fab6c2c7-eeae-4009-a932-fc079402db63}</UniqueIdentifier>
</Filter>
<Filter Include="VapourSynth">
<UniqueIdentifier>{8a87437e-fe04-4b74-a917-f8c108247e3f}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(FfmsSrcDir)\src\core\audiosource.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\indexing.cpp">
<Filter>Indexing</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\videosource.cpp">
<Filter>Video</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\ffms.cpp">
<Filter>API</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\utils.cpp">
<Filter>Utils</Filter>
</ClCompile>
<None Include="$(FfmsSrcDir)\src\avisynth\avisynth.cpp">
<Filter>Avisynth</Filter>
</None>
<None Include="$(FfmsSrcDir)\src\avisynth\avssources.cpp">
<Filter>Avisynth</Filter>
</None>
<None Include="$(FfmsSrcDir)\src\avisynth\avsutils.cpp">
<Filter>Avisynth</Filter>
</None>
<None Include="$(FfmsSrcDir)\src\avisynth\ffswscale.cpp">
<Filter>Avisynth</Filter>
</None>
<ClCompile Include="$(FfmsSrcDir)\src\core\videoutils.cpp">
<Filter>Video</Filter>
</ClCompile>
<None Include="$(FfmsSrcDir)\src\vapoursynth\vapoursource.cpp">
<Filter>VapourSynth</Filter>
</None>
<None Include="$(FfmsSrcDir)\src\vapoursynth\vapoursynth.cpp">
<Filter>VapourSynth</Filter>
</None>
<ClCompile Include="$(FfmsSrcDir)\src\core\matroskareader.cpp">
<Filter>Utils</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\filehandle.cpp">
<Filter>Utils</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\zipfile.cpp">
<Filter>Utils</Filter>
</ClCompile>
<ClCompile Include="$(FfmsSrcDir)\src\core\track.cpp">
<Filter>Indexing</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(FfmsSrcDir)\src\core\audiosource.h">
<Filter>Audio</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\indexing.h">
<Filter>Indexing</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\videosource.h">
<Filter>Video</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\include\ffms.h">
<Filter>API</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\include\ffmscompat.h">
<Filter>Utils</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\utils.h">
<Filter>Utils</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avisynth.h">
<Filter>Avisynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avssources.h">
<Filter>Avisynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\avsutils.h">
<Filter>Avisynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\avisynth\ffswscale.h">
<Filter>Avisynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\videoutils.h">
<Filter>Video</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\vapoursynth\vapoursource.h">
<Filter>VapourSynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\vapoursynth\VapourSynth.h">
<Filter>VapourSynth</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\filehandle.h">
<Filter>Utils</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\zipfile.h">
<Filter>Utils</Filter>
</ClInclude>
<ClInclude Include="$(FfmsSrcDir)\src\core\track.h">
<Filter>Indexing</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,393 +0,0 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to compile in long-double precision. */
#undef BENCHFFT_LDOUBLE
/* Define to compile in quad precision. */
#undef BENCHFFT_QUAD
/* Define to compile in single precision. */
#undef BENCHFFT_SINGLE
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
/* Define to disable Fortran wrappers. */
#define DISABLE_FORTRAN 1
/* Define to dummy `main' function (if any) required to link to the Fortran
libraries. */
#undef F77_DUMMY_MAIN
/* Define to a macro mangling the given C identifier (in lower and upper
case), which must not contain underscores, for linking with Fortran. */
#undef F77_FUNC
/* As F77_FUNC, but for C identifiers containing underscores. */
#undef F77_FUNC_
/* Define if F77_FUNC and F77_FUNC_ are equivalent. */
#undef F77_FUNC_EQUIV
/* Define if F77 and FC dummy `main' functions are identical. */
#undef FC_DUMMY_MAIN_EQ_F77
/* C compiler name and flags */
#define FFTW_CC "cl"
/* Define to enable extra FFTW debugging code. */
#undef FFTW_DEBUG
/* Define to enable alignment debugging hacks. */
#undef FFTW_DEBUG_ALIGNMENT
/* Define to enable debugging malloc. */
#undef FFTW_DEBUG_MALLOC
/* Define to enable the use of alloca(). */
#undef FFTW_ENABLE_ALLOCA
/* Define to compile in long-double precision. */
#undef FFTW_LDOUBLE
/* Define to compile in quad precision. */
#undef FFTW_QUAD
/* Define to enable pseudorandom estimate planning for debugging. */
#undef FFTW_RANDOM_ESTIMATOR
/* Define to compile in single precision. */
#undef FFTW_SINGLE
/* Define to 1 if you have the `abort' function. */
#define HAVE_ABORT 1
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H
/* Define to enable Altivec optimizations. */
#undef HAVE_ALTIVEC
/* Define to 1 if you have the <altivec.h> header file. */
#undef HAVE_ALTIVEC_H
/* Define to enable AVX optimizations. */
#undef HAVE_AVX
/* Define to 1 if you have the `BSDgettimeofday' function. */
#undef HAVE_BSDGETTIMEOFDAY
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
/* Define to 1 if you have the `cosl' function. */
#define HAVE_COSL 1
/* Define to 1 if you have the <c_asm.h> header file. */
#undef HAVE_C_ASM_H
/* Define to 1 if you have the declaration of `cosl', and to 0 if you don't.
*/
#define HAVE_DECL_COSL 1
/* Define to 1 if you have the declaration of `cosq', and to 0 if you don't. */
#define HAVE_DECL_COSQ 0
/* Define to 1 if you have the declaration of `drand48', and to 0 if you don't. */
#define HAVE_DECL_DRAND48 0
/* Define to 1 if you have the declaration of `memalign', and to 0 if you don't. */
#define HAVE_DECL_MEMALIGN 0
/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if you don't. */
#define HAVE_DECL_POSIX_MEMALIGN 0
/* Define to 1 if you have the declaration of `sinl', and to 0 if you don't. */
#define HAVE_DECL_SINL 1
/* Define to 1 if you have the declaration of `sinq', and to 0 if you don't.
*/
#define HAVE_DECL_SINQ 0
/* Define to 1 if you have the declaration of `srand48', and to 0 if you
don't. */
#define HAVE_DECL_SRAND48 0
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
#undef HAVE_DOPRNT
/* Define to 1 if you have the `drand48' function. */
#undef HAVE_DRAND48
/* Define if you have a machine with fused multiply-add */
#undef HAVE_FMA
/* Define to 1 if you have the `gethrtime' function. */
#undef HAVE_GETHRTIME
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
/* Define to 1 if hrtime_t is defined in <sys/time.h> */
#undef HAVE_HRTIME_T
/* Define to 1 if you have the <intrinsics.h> header file. */
#undef HAVE_INTRINSICS_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if the isnan() function/macro is available. */
#undef HAVE_ISNAN
/* Define to 1 if you have the <libintl.h> header file. */
#undef HAVE_LIBINTL_H
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
/* Define to 1 if you have the `quadmath' library (-lquadmath). */
#undef HAVE_LIBQUADMATH
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define to 1 if the compiler supports `long double' */
#define HAVE_LONG_DOUBLE 1
/* Define to 1 if you have the `mach_absolute_time' function. */
#undef HAVE_MACH_ABSOLUTE_TIME
/* Define to 1 if you have the <mach/mach_time.h> header file. */
#undef HAVE_MACH_MACH_TIME_H
/* Define to 1 if you have the <malloc.h> header file. */
#define HAVE_MALLOC_H 1
/* Define to 1 if you have the `memalign' function. */
#undef HAVE_MEMALIGN
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `memset' function. */
#define HAVE_MEMSET 1
/* Define to enable MIPS paired-single optimizations. */
#undef HAVE_MIPS_PS
/* Define to enable use of MIPS ZBus cycle-counter. */
#undef HAVE_MIPS_ZBUS_TIMER
/* Define if you have the MPI library. */
#undef HAVE_MPI
/* Define if OpenMP is enabled */
#define HAVE_OPENMP 1
/* Define to 1 if you have the `posix_memalign' function. */
#undef HAVE_POSIX_MEMALIGN
/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD
/* Define to 1 if you have the `read_real_time' function. */
#undef HAVE_READ_REAL_TIME
/* Define to 1 if you have the `sinl' function. */
#define HAVE_SINL 1
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* Define to 1 if you have the `sqrt' function. */
#define HAVE_SQRT 1
/* Define to enable SSE/SSE2 optimizations. */
#define HAVE_SSE2 1
/* Define to 1 if you have the <stddef.h> header file. */
#define HAVE_STDDEF_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `sysctl' function. */
#undef HAVE_SYSCTL
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the `tanl' function. */
#define HAVE_TANL 1
/* Define if we have a threads library. */
#undef HAVE_THREADS
/* Define to 1 if you have the `time_base_to_time' function. */
#undef HAVE_TIME_BASE_TO_TIME
/* Define to 1 if the system has the type `uintptr_t'. */
#define HAVE_UINTPTR_T 1
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vprintf' function. */
#define HAVE_VPRINTF 1
/* Define to 1 if you have the `_mm_free' function. */
#undef HAVE__MM_FREE
/* Define to 1 if you have the `_mm_malloc' function. */
#undef HAVE__MM_MALLOC
/* Define if you have the UNICOS _rtc() intrinsic. */
#undef HAVE__RTC
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
/* Name of package */
#define PACKAGE "fftw"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "fftw@fftw.org"
/* Define to the full name of this package. */
#define PACKAGE_NAME "fftw"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "fftw-3.3"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "fftw"
/* Define to the home page for this package. */
#define PACKAGE_URL "http://www.fftw.org"
/* Define to the version of this package. */
#define PACKAGE_VERSION "3.3"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
#undef PTHREAD_CREATE_JOINABLE
/* The size of `double', as computed by sizeof. */
#define SIZEOF_DOUBLE 8
/* The size of `fftw_r2r_kind', as computed by sizeof. */
#undef SIZEOF_FFTW_R2R_KIND
/* The size of `float', as computed by sizeof. */
#define SIZEOF_FLOAT 4
/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 4
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of `MPI_Fint', as computed by sizeof. */
#undef SIZEOF_MPI_FINT
/* The size of `ptrdiff_t', as computed by sizeof. */
#define SIZEOF_PTRDIFF_T 4
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 4
/* The size of `unsigned int', as computed by sizeof. */
#define SIZEOF_UNSIGNED_INT 4
/* The size of `unsigned long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG 4
/* The size of `unsigned long long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG_LONG 8
/* The size of `void *', as computed by sizeof. */
#define SIZEOF_VOID_P 4
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Define if we have and are using POSIX threads. */
#undef USING_POSIX_THREADS
/* Version number of package */
#define VERSION "3.3"
/* Use common Windows Fortran mangling styles for the Fortran interfaces. */
#undef WINDOWS_F77_MANGLING
/* Include g77-compatible wrappers in addition to any other Fortran wrappers.
*/
#undef WITH_G77_WRAPPERS
/* Use our own aligned malloc routine; mainly helpful for Windows systems
lacking aligned allocation system-library routines. */
#define WITH_OUR_MALLOC 1
/* Use low-precision timers, making planner very slow */
#undef WITH_SLOW_TIMER
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#define inline __inline
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t

View File

@ -1,677 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{EA3DCC95-2423-4EA0-A508-7A427B4C0594}</ProjectGuid>
<RootNamespace>fftw</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(FftwSrcDir)\;
$(FftwSrcDir)\api;
$(FftwSrcDir)\kernel;
$(FftwSrcDir)\dft;
$(FftwSrcDir)\dft\simd;
$(FftwSrcDir)\dft\scalar;
$(FftwSrcDir)\rdft;
$(FftwSrcDir)\rdft\simd;
$(FftwSrcDir)\rdft\scalar;
$(FftwSrcDir)\reodft;
$(FftwSrcDir)\simd-support;
$(FftwSrcDir)\threads;
$(MSBuildThisFileDirectory);
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<OpenMPSupport>true</OpenMPSupport>
<StructMemberAlignment>Default</StructMemberAlignment>
<InputRelativeSourceDir>$(FftwSrcDir)</InputRelativeSourceDir>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(FftwSrcDir)\api</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(FftwSrcDir)\api\fftw3.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="config.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(FftwSrcDir)\api\apiplan.c" />
<ClCompile Include="$(FftwSrcDir)\api\configure.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-split-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-split-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute-split-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\execute.c" />
<ClCompile Include="$(FftwSrcDir)\api\export-wisdom-to-file.c" />
<ClCompile Include="$(FftwSrcDir)\api\export-wisdom-to-string.c" />
<ClCompile Include="$(FftwSrcDir)\api\export-wisdom.c" />
<ClCompile Include="$(FftwSrcDir)\api\f77api.c" />
<ClCompile Include="$(FftwSrcDir)\api\flops.c" />
<ClCompile Include="$(FftwSrcDir)\api\forget-wisdom.c" />
<ClCompile Include="$(FftwSrcDir)\api\import-system-wisdom.c" />
<ClCompile Include="$(FftwSrcDir)\api\import-wisdom-from-file.c" />
<ClCompile Include="$(FftwSrcDir)\api\import-wisdom-from-string.c" />
<ClCompile Include="$(FftwSrcDir)\api\import-wisdom.c" />
<ClCompile Include="$(FftwSrcDir)\api\malloc.c" />
<ClCompile Include="$(FftwSrcDir)\api\map-r2r-kind.c" />
<ClCompile Include="$(FftwSrcDir)\api\mapflags.c" />
<ClCompile Include="$(FftwSrcDir)\api\mkprinter-file.c" />
<ClCompile Include="$(FftwSrcDir)\api\mktensor-iodims.c" />
<ClCompile Include="$(FftwSrcDir)\api\mktensor-iodims64.c" />
<ClCompile Include="$(FftwSrcDir)\api\mktensor-rowmajor.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-1d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-2d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-3d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-c2r-1d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-c2r-2d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-c2r-3d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-r2c-1d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-r2c-2d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-r2c-3d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-split-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-split-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru-split-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-split-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-split-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-guru64-split-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-many-dft-c2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-many-dft-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-many-dft.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-many-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-r2r-1d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-r2r-2d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-r2r-3d.c" />
<ClCompile Include="$(FftwSrcDir)\api\plan-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\api\print-plan.c" />
<ClCompile Include="$(FftwSrcDir)\api\rdft2-pad.c" />
<ClCompile Include="$(FftwSrcDir)\api\the-planner.c" />
<ClCompile Include="$(FftwSrcDir)\api\version.c" />
<ClCompile Include="$(FftwSrcDir)\dft\bluestein.c" />
<ClCompile Include="$(FftwSrcDir)\dft\buffered.c" />
<ClCompile Include="$(FftwSrcDir)\dft\conf.c" />
<ClCompile Include="$(FftwSrcDir)\dft\ct.c" />
<ClCompile Include="$(FftwSrcDir)\dft\dftw-direct.c" />
<ClCompile Include="$(FftwSrcDir)\dft\dftw-directsq.c" />
<ClCompile Include="$(FftwSrcDir)\dft\dftw-generic.c" />
<ClCompile Include="$(FftwSrcDir)\dft\dftw-genericbuf.c" />
<ClCompile Include="$(FftwSrcDir)\dft\direct.c" />
<ClCompile Include="$(FftwSrcDir)\dft\generic.c" />
<ClCompile Include="$(FftwSrcDir)\dft\indirect-transpose.c" />
<ClCompile Include="$(FftwSrcDir)\dft\indirect.c" />
<ClCompile Include="$(FftwSrcDir)\dft\kdft-dif.c" />
<ClCompile Include="$(FftwSrcDir)\dft\kdft-difsq.c" />
<ClCompile Include="$(FftwSrcDir)\dft\kdft-dit.c" />
<ClCompile Include="$(FftwSrcDir)\dft\kdft.c" />
<ClCompile Include="$(FftwSrcDir)\dft\nop.c" />
<ClCompile Include="$(FftwSrcDir)\dft\plan.c" />
<ClCompile Include="$(FftwSrcDir)\dft\problem.c" />
<ClCompile Include="$(FftwSrcDir)\dft\rader.c" />
<ClCompile Include="$(FftwSrcDir)\dft\rank-geq2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_11.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_13.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_14.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\n1_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\q1_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t1_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\codelets\t2_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\n.c" />
<ClCompile Include="$(FftwSrcDir)\dft\scalar\t.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\genus.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_11.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_128.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_13.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_14.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1bv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_11.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_128.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_13.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_14.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n1fv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_14.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_14.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2sv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2sv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2sv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2sv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\n2sv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1bv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1bv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1fv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1fv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\q1fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1buv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1bv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fuv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_12.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_15.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_3.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_6.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_7.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1fv_9.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1sv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1sv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1sv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1sv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t1sv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_2.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_64.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2sv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2sv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2sv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t2sv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3bv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_10.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_16.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_20.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_25.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_32.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_4.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_5.c" />
<ClCompile Include="$(FftwSrcDir)\dft\simd\sse2\t3fv_8.c" />
<ClCompile Include="$(FftwSrcDir)\dft\solve.c" />
<ClCompile Include="$(FftwSrcDir)\dft\vrank-geq1.c" />
<ClCompile Include="$(FftwSrcDir)\dft\zero.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\align.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\alloc.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\assert.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\awake.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\buffered.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\cpy1d.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\cpy2d-pair.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\cpy2d.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\ct.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\debug.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\extract-reim.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\hash.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\iabs.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\kalloc.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\md5-1.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\md5.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\minmax.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\ops.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\pickdim.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\plan.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\planner.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\primes.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\print.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\problem.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\rader.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\scan.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\solver.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\solvtab.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\stride.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor1.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor2.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor3.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor4.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor5.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor7.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor8.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tensor9.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\tile2d.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\timer.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\transpose.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\trig.c" />
<ClCompile Include="$(FftwSrcDir)\kernel\twiddle.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\buffered.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\buffered2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\conf.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\ct-hc2c-direct.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\ct-hc2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\dft-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\dht-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\dht-rader.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\direct-r2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\direct-r2r.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\direct2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\generic.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\hc2hc-direct.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\hc2hc-generic.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\hc2hc.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\indirect.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\khc2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\khc2hc.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\kr2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\kr2r.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\nop.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\nop2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\plan.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\plan2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\problem.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\problem2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rank-geq2-rdft2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rank-geq2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rank0-rdft2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rank0.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rdft-dht.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rdft2-inplace-strides.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rdft2-rdft.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rdft2-strides.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\rdft2-tensor-max-index.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\hc2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\hfb.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2c.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hb_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cbdft_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\hc2cb_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cbIII_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_11.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_128.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_13.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_14.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cb\r2cb_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cfdft_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hc2cf_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf2_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\hf_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cfII_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_11.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_128.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_13.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_14.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_15.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_25.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_3.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_5.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_64.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_7.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2cf\r2cf_9.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2r.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2r\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2r\e01_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\scalar\r2r\e10_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\codlist.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\genus.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cbdftv_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_10.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_12.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_16.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_20.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_32.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_4.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_6.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\simd\sse2\hc2cfdftv_8.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\solve.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\solve2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\vrank-geq1-rdft2.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\vrank-geq1.c" />
<ClCompile Include="$(FftwSrcDir)\rdft\vrank3-transpose.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\conf.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\redft00e-r2hc-pad.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\redft00e-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\reodft00e-splitradix.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\reodft010e-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\reodft11e-r2hc-odd.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\reodft11e-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\reodft11e-radix2.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\rodft00e-r2hc-pad.c" />
<ClCompile Include="$(FftwSrcDir)\reodft\rodft00e-r2hc.c" />
<ClCompile Include="$(FftwSrcDir)\simd-support\sse2-nonportable.c" />
<ClCompile Include="$(FftwSrcDir)\simd-support\sse2.c" />
<ClCompile Include="$(FftwSrcDir)\simd-support\taint.c" />
<ClCompile Include="$(FftwSrcDir)\threads\api.c" />
<ClCompile Include="$(FftwSrcDir)\threads\conf.c" />
<ClCompile Include="$(FftwSrcDir)\threads\ct.c" />
<ClCompile Include="$(FftwSrcDir)\threads\dft-vrank-geq1.c" />
<ClCompile Include="$(FftwSrcDir)\threads\f77api.c" />
<ClCompile Include="$(FftwSrcDir)\threads\hc2hc.c" />
<ClCompile Include="$(FftwSrcDir)\threads\openmp.c" />
<ClCompile Include="$(FftwSrcDir)\threads\rdft-vrank-geq1.c" />
<ClCompile Include="$(FftwSrcDir)\threads\vrank-geq1-rdft2.c" />
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,86 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}</ProjectGuid>
<RootNamespace>freetype</RootNamespace>
</PropertyGroup>
<!-- Project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(Freetype2SrcDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<DisableLanguageExtensions>true</DisableLanguageExtensions>
<DisableSpecificWarnings>4001</DisableSpecificWarnings>
</ClCompile>
<ResourceCompile>
<Culture>0x0409</Culture>
</ResourceCompile>
<InstallHeader>
<HeaderRoot>$(Freetype2SrcDir)\include</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(Freetype2SrcDir)\include\**\*.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)ftsystem.cpp" />
<ClCompile Include="$(Freetype2SrcDir)\src\autofit\autofit.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbase.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbbox.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbitmap.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftfstype.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftgasp.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftglyph.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftgxval.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftinit.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftlcdfil.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftmm.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftotval.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftpatent.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftpfr.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftstroke.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftsynth.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\fttype1.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftwinfnt.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftfntfmt.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\bdf\bdf.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\cache\ftcache.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\cff\cff.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\cid\type1cid.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\gzip\ftgzip.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\lzw\ftlzw.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\pcf\pcf.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\pfr\pfr.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\psaux\psaux.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\pshinter\pshinter.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\psnames\psmodule.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\raster\raster.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\sfnt\sfnt.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\smooth\smooth.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\truetype\truetype.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\type1\type1.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\type42\type42.c" />
<ClCompile Include="$(Freetype2SrcDir)\src\winfonts\winfnt.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(Freetype2SrcDir)\include\ft2build.h" />
<ClInclude Include="$(Freetype2SrcDir)\include\config\ftconfig.h" />
<ClInclude Include="$(Freetype2SrcDir)\include\config\ftheader.h" />
<ClInclude Include="$(Freetype2SrcDir)\include\config\ftmodule.h" />
<ClInclude Include="$(Freetype2SrcDir)\include\config\ftoption.h" />
<ClInclude Include="$(Freetype2SrcDir)\include\config\ftstdlib.h" />
</ItemGroup>
</Project>

View File

@ -1,152 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{b4c15893-ec11-491d-9507-0ac184f9cc78}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Source Files\FT_MODULES">
<UniqueIdentifier>{4d3e4eff-3fbc-4b20-b413-2743b23b7109}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{e6cf6a0f-0404-4024-8bf8-ff5b29f35657}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(Freetype2SrcDir)\src\autofit\autofit.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbase.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbbox.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftbitmap.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftfstype.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftgasp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftglyph.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftgxval.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftinit.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftlcdfil.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftmm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftotval.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftpatent.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftpfr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftstroke.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftsynth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)ftsystem.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\fttype1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftwinfnt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\base\ftfntfmt..c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\bdf\bdf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\cache\ftcache.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\cff\cff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\cid\type1cid.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\gzip\ftgzip.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\lzw\ftlzw.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\pcf\pcf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\pfr\pfr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\psaux\psaux.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\pshinter\pshinter.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\psnames\psmodule.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\raster\raster.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\sfnt\sfnt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\smooth\smooth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\truetype\truetype.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\type1\type1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\type42\type42.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(Freetype2SrcDir)\src\winfonts\winfnt.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(Freetype2SrcDir)\include\ft2build.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(Freetype2SrcDir)\include\freetype\config\ftconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(Freetype2SrcDir)\include\freetype\config\ftheader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(Freetype2SrcDir)\include\freetype\config\ftmodule.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(Freetype2SrcDir)\include\freetype\config\ftoption.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(Freetype2SrcDir)\include\freetype\config\ftstdlib.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,75 +0,0 @@
// Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
//
// Aegisub Project http://www.aegisub.org/
// The non-unix version of ftsystem.c uses stdio functions, but freetype uses
// streams as if they had mmap's performance characteristics (as it uses mmap
// on unix), which results in mind-blowingly poor performance (35%+ of the
// fontconfig caching runtime is spent on fseek).
#include <ft2build.h>
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_STREAM_H
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include <codecvt>
#include <fstream>
extern "C" FT_Error FT_Stream_Open(FT_Stream stream, const char *filepathname) {
if (!stream)
return FT_THROW(Invalid_Stream_Handle);
stream->descriptor.pointer = nullptr;
stream->pathname.pointer = const_cast<char *>(filepathname);
stream->base = nullptr;
stream->pos = 0;
stream->read = nullptr;
stream->close = nullptr;
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter;
std::ifstream file(converter.from_bytes(filepathname), std::ios::binary);
if (!file.good())
return FT_THROW(Cannot_Open_Resource);
file.seekg(0, std::ios::end);
stream->size = (unsigned long)file.tellg();
if (!stream->size)
return FT_THROW(Cannot_Open_Stream);
file.seekg(0, std::ios::beg);
stream->base = (unsigned char *)malloc(stream->size);
file.read((char *)stream->base, stream->size);
stream->close = [](FT_Stream stream) {
free(stream->base);
stream->size = 0;
stream->base = nullptr;
};
return FT_Err_Ok;
}
extern "C" FT_Memory FT_New_Memory() {
return new FT_MemoryRec_{
nullptr,
[](FT_Memory, long size) { return malloc(size); },
[](FT_Memory, void *ptr) { free(ptr); },
[](FT_Memory, long, long size, void *ptr) { return realloc(ptr, size); }};
}
extern "C" void FT_Done_Memory(FT_Memory memory) {
delete memory;
}

View File

@ -1,22 +0,0 @@
#ifndef FRIBIDI_CONFIG_H
#define FRIBIDI_CONFIG_H
#define FRIBIDI "fribidi"
#define FRIBIDI_NAME "GNU FriBidi"
#define FRIBIDI_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?product=fribidi"
#define FRIBIDI_VERSION "0.19.6"
#define FRIBIDI_MAJOR_VERSION 0
#define FRIBIDI_MINOR_VERSION 19
#define FRIBIDI_MICRO_VERSION 6
#define FRIBIDI_INTERFACE_VERSION 3
#define FRIBIDI_INTERFACE_VERSION_STRING "3"
#define FRIBIDI_CHARSETS 0
#define FRIBIDI_USE_GLIB 0
#define FRIBIDI_SIZEOF_INT 4
#define HAVE_STDLIB_H 1
#define USE_SIMPLE_MALLOC 1
#define HAVE_STRINGIZE 1
#endif

View File

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{FB8E8D19-A4D6-4181-943C-282075F49B41}</ProjectGuid>
<RootNamespace>fribidi</RootNamespace>
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<!-- Aegisub project configuration -->
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(FribidiSrcDir)\lib;
$(MSBuildThisFileDirectory);
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
FRIBIDI_ENTRY=;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- Download fribidi -->
<UsingTask TaskName="TarballProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
<Target
Name="Download"
BeforeTargets="ClCompile"
Inputs="$(FribidiSrcDir)aegisub.hash"
Outputs="$(FribidiSrcDir)nonexistent-file"
>
<TarballProject
Url="https://github.com/fribidi/fribidi/releases/download/0.19.6/fribidi-0.19.6.tar.bz2"
Hash="cba8b7423c817e5adf50d28ec9079d14eafcec9127b9e8c8f1960c5ad585e17d"
Root="$(FribidiSrcDir)"
/>
</Target>
<!-- Source files -->
<ItemGroup>
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-arabic.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-bidi-types.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-bidi.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-deprecated.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-joining-types.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-joining.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-mem.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-mirroring.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-run.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi-shape.c" />
<ClCompile Include="$(FribidiSrcDir)\lib\fribidi.c" />
<InstallHeader Include="$(FribidiSrcDir)\lib\*.h">
<HeaderRoot>$(FribidiSrcDir)\lib</HeaderRoot>
</InstallHeader>
<InstallHeader Include="$(MSBuildThisFileDirectory)fribidi-config.h">
<HeaderRoot>$(MSBuildThisFileDirectory)</HeaderRoot>
</InstallHeader>
</ItemGroup>
</Project>

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{FBE51B37-8B12-41E8-B5E0-F00A06B4BCD2}</ProjectGuid>
<RootNamespace>googletest</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
GTEST_HAS_TR1_TUPLE=0;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
$(GtestSrcDir);
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-death-test.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-message.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-param-test.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-printers.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-spi.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-test-part.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-typed-test.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest_pred_impl.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest_prod.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-death-test-internal.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-filepath.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-internal.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-linked_ptr.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util-generated.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-port.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-string.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-tuple.h" />
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-type-util.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(GtestSrcDir)\include\gtest\gtest-param-test.h.pump" />
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util-generated.h.pump" />
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-tuple.h.pump" />
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-type-util.h.pump" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(GtestSrcDir)\src\gtest-all.cc" />
</ItemGroup>
</Project>

View File

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Header Files\internal">
<UniqueIdentifier>{ad1eaa10-1448-406d-924c-ec1a608cec0b}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest_pred_impl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest_prod.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-death-test.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-message.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-param-test.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-printers.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-spi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-test-part.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\gtest-typed-test.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-death-test-internal.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-filepath.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-internal.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-linked_ptr.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util-generated.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-port.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-string.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-tuple.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
<ClInclude Include="$(GtestSrcDir)\include\gtest\internal\gtest-type-util.h">
<Filter>Header Files\internal</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="$(GtestSrcDir)\include\gtest\gtest-param-test.h.pump">
<Filter>Header Files</Filter>
</None>
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-param-util-generated.h.pump">
<Filter>Header Files\internal</Filter>
</None>
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-tuple.h.pump">
<Filter>Header Files\internal</Filter>
</None>
<None Include="$(GtestSrcDir)\include\gtest\internal\gtest-type-util.h.pump">
<Filter>Header Files\internal</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(GtestSrcDir)\src\gtest-all.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{CC791693-6B28-40AC-879D-64A6C16468E3}</ProjectGuid>
<RootNamespace>hunspell</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\hunspell\src\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>HUNSPELL_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SrcDir)win_api;$(SrcDir)hunspell;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
</ClCompile>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<ClInclude Include="$(SrcDir)hunspell\affentry.hxx" />
<ClInclude Include="$(SrcDir)hunspell\affixmgr.hxx" />
<ClInclude Include="$(SrcDir)hunspell\atypes.hxx" />
<ClInclude Include="$(SrcDir)hunspell\baseaffix.hxx" />
<ClInclude Include="$(SrcDir)hunspell\csutil.hxx" />
<ClInclude Include="$(SrcDir)hunspell\dictmgr.hxx" />
<ClInclude Include="$(SrcDir)hunspell\hashmgr.hxx" />
<ClInclude Include="$(SrcDir)hunspell\htypes.hxx" />
<ClInclude Include="$(SrcDir)hunspell\hunspell.h" />
<ClInclude Include="$(SrcDir)hunspell\hunspell.hxx" />
<ClInclude Include="$(SrcDir)hunspell\langnum.hxx" />
<ClInclude Include="$(SrcDir)hunspell\phonet.hxx" />
<ClInclude Include="$(SrcDir)hunspell\suggestmgr.hxx" />
<ClInclude Include="$(SrcDir)win_api\config.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)hunspell\affentry.cxx" />
<ClCompile Include="$(SrcDir)hunspell\affixmgr.cxx" />
<ClCompile Include="$(SrcDir)hunspell\csutil.cxx" />
<ClCompile Include="$(SrcDir)hunspell\dictmgr.cxx" />
<ClCompile Include="$(SrcDir)hunspell\filemgr.cxx" />
<ClCompile Include="$(SrcDir)hunspell\hashmgr.cxx" />
<ClCompile Include="$(SrcDir)hunspell\hunspell.cxx" />
<ClCompile Include="$(SrcDir)hunspell\hunzip.cxx" />
<ClCompile Include="$(SrcDir)hunspell\phonet.cxx" />
<ClCompile Include="$(SrcDir)hunspell\replist.cxx" />
<ClCompile Include="$(SrcDir)hunspell\suggestmgr.cxx" />
</ItemGroup>
</Project>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)hunspell\affixmgr.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\atypes.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\baseaffix.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\csutil.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\dictmgr.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\hashmgr.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\htypes.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\hunspell.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\hunspell.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\langnum.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\phonet.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\suggestmgr.hxx">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)win_api\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)hunspell\affentry.hxx">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)hunspell\affentry.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\affixmgr.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\csutil.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\dictmgr.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\hashmgr.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\hunspell.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\phonet.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\suggestmgr.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\filemgr.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\hunzip.cxx">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)hunspell\replist.cxx">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,703 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{F934AB7B-186B-4E96-B20C-A58C38C1B818}</ProjectGuid>
<RootNamespace>icu</RootNamespace>
<AegisubProjectType>lib</AegisubProjectType>
<AegisubMBCS>true</AegisubMBCS>
</PropertyGroup>
<!-- Aegisub project configuration -->
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(IcuSrcDir)\common;
$(IcuSrcDir)\common\unicode;
$(IcuSrcDir)\i18n;
$(IcuSrcDir)\i18n\unicode;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
U_ENABLE_DYLOAD=0;
U_CHECK_DYLOAD=0;
UCONFIG_NO_FILE_IO=1;
UCONFIG_NO_LEGACY_CONVERSION=1;
U_CHARSET_IS_UTF8=1;
UCONFIG_NO_IDNA=1;
UCONFIG_NO_FORMATTING=1;
UCONFIG_NO_TRANSLITERATION=1;
U_ATTRIBUTE_DEPRECATED=;
_CRT_SECURE_NO_DEPRECATE;
U_COMMON_IMPLEMENTATION;
U_I18N_IMPLEMENTATION;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- ICU data table stuff -->
<PropertyGroup>
<MiniLuaCommand>$(AegisubBinaryDir)luajit-minilua$(AegisubPlatformSuffix)</MiniLuaCommand>
<PackCommand>$(MSBuildThisFileDirectory)pack-dt.lua</PackCommand>
<IcuDt>icudt53l</IcuDt>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<UsingTask TaskName="DownloadTgzFile" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
<Target
Name="DownloadDataTables"
BeforeTargets="PackDataTables"
Inputs="$(IcuSrcDir)data\in\$(IcuDt).dat.gz"
Outputs="$(IcuSrcDir)data\in\$(IcuDt).dat"
>
<!-- Generated with tools/strip-icu.py -->
<DownloadTgzFile
Url="http://www.aegisub.org/~plorkyeran/$(IcuDt)-be995a7e5fe230029e9b1e547b7de8826888c18c.dat.gz"
OutputFile="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in\$(IcuDt).dat"
Hash="be995a7e5fe230029e9b1e547b7de8826888c18c"
/>
</Target>
<Target
Name="PackDataTables"
BeforeTargets="ClCompile"
Inputs="$(IcuSrcDir)\data\in\$(IcuDt).dat;pack-dt.lua"
Outputs="$(AegisubObjectDir)$(IcuDt).c"
>
<Exec
Command="$(MiniLuaCommand) $(PackCommand) &quot;$(IcuSrcDir)&quot; &quot;$(AegisubObjectDir)$(IcuDt).c&quot;"
/>
</Target>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(IcuSrcDir)\i18n\unicode\*.h">
<HeaderRoot>$(IcuSrcDir)\i18n</HeaderRoot>
</InstallHeader>
<InstallHeader Include="$(IcuSrcDir)\common\unicode\*.h">
<HeaderRoot>$(IcuSrcDir)\common</HeaderRoot>
</InstallHeader>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(AegisubObjectDir)\$(IcuDt).c" />
<ClCompile Include="$(IcuSrcDir)\common\ubidi.c" />
<ClCompile Include="$(IcuSrcDir)\common\ubidi_props.c" />
<ClCompile Include="$(IcuSrcDir)\common\ubidiln.c" />
<ClCompile Include="$(IcuSrcDir)\common\ubidiwrt.c" />
<ClCompile Include="$(IcuSrcDir)\common\ushape.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\brkeng.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\brkiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\dictbe.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbi.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbidata.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbinode.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbirb.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbiscan.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbisetb.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbistbl.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\rbbitblb.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\dictionarydata.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ubrk.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucol_swp.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\propsvec.c" />
<ClCompile Include="$(IcuSrcDir)\common\uarrsort.c" />
<ClCompile Include="$(IcuSrcDir)\common\uenum.c" />
<ClCompile Include="$(IcuSrcDir)\common\uhash.c" />
<ClCompile Include="$(IcuSrcDir)\common\uhash_us.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ulist.c" />
<ClCompile Include="$(IcuSrcDir)\common\ustack.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustrenum.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\utrie.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\utrie2.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\utrie2_builder.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uvector.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uvectr32.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uvectr64.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\errorcode.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\icudataver.c" />
<ClCompile Include="$(IcuSrcDir)\common\locmap.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\putil.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\umath.c" />
<ClCompile Include="$(IcuSrcDir)\common\umutex.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\utrace.c" />
<ClCompile Include="$(IcuSrcDir)\common\utypes.c" />
<ClCompile Include="$(IcuSrcDir)\common\wintz.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\ucnv.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv2022.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_bld.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_cb.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_cnv.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_ct.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_err.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_ext.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_io.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_lmb.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_set.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_u16.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_u32.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_u7.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnv_u8.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvbocu.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvdisp.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvhz.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvisci.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvlat1.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvmbcs.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvscsu.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucnvsel.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\cmemory.c" />
<ClCompile Include="$(IcuSrcDir)\common\ucln_cmn.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\ucmndata.c" />
<ClCompile Include="$(IcuSrcDir)\common\udata.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\udatamem.c" />
<ClCompile Include="$(IcuSrcDir)\common\udataswp.c" />
<ClCompile Include="$(IcuSrcDir)\common\uinit.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\umapfile.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\uobject.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\dtintrv.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\parsepos.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustrfmt.c" />
<ClCompile Include="$(IcuSrcDir)\common\util.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\util_props.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\punycode.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uidna.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uts46.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locavailable.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locbased.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locdispnames.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locid.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\loclikely.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locresdata.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\locutil.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\lrucache.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\common\resbund.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\resbund_cnv.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucat.c" />
<ClCompile Include="$(IcuSrcDir)\common\uloc.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uloc_tag.c" />
<ClCompile Include="$(IcuSrcDir)\common\ures_cnv.c" />
<ClCompile Include="$(IcuSrcDir)\common\uresbund.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uresdata.c" />
<ClCompile Include="$(IcuSrcDir)\common\caniter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\filterednormalizer2.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\normalizer2.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\normalizer2impl.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\normlzr.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unorm.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unormcmp.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\bmpset.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\patternprops.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\propname.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ruleiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucase.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uchar.c" />
<ClCompile Include="$(IcuSrcDir)\common\unames.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unifilt.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unifunct.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uniset.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uniset_closure.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uniset_props.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unisetspan.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uprops.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\usc_impl.c" />
<ClCompile Include="$(IcuSrcDir)\common\uscript.c" />
<ClCompile Include="$(IcuSrcDir)\common\uscript_props.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uset.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uset_props.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\usetiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\icuplug.c" />
<ClCompile Include="$(IcuSrcDir)\common\serv.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servlk.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servlkf.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servls.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servnotf.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servrbf.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\servslkf.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\usprep.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\appendable.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\bytestream.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\bytestrie.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\bytestriebuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\bytestrieiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\chariter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\charstr.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\cstring.c" />
<ClCompile Include="$(IcuSrcDir)\common\cwchar.c" />
<ClCompile Include="$(IcuSrcDir)\common\messagepattern.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\schriter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\stringpiece.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\stringtriebuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\simplepatternformatter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucasemap.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucasemap_titlecase_brkiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucharstrie.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucharstriebuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ucharstrieiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uchriter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\uinvchar.c" />
<ClCompile Include="$(IcuSrcDir)\common\uiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr_case.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr_case_locale.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr_cnv.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr_props.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\unistr_titlecase_brkiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustr_cnv.c" />
<ClCompile Include="$(IcuSrcDir)\common\ustr_titlecase_brkiter.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustr_wcs.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustrcase.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustrcase_locale.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustring.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\ustrtrns.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\utext.cpp" />
<ClCompile Include="$(IcuSrcDir)\common\utf_impl.c" />
<ClCompile Include="$(IcuSrcDir)\common\listformatter.cpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(IcuSrcDir)\common\sharedobject.cpp" />
<ClInclude Include="$(IcuSrcDir)\common\bmpset.h" />
<ClInclude Include="$(IcuSrcDir)\common\brkeng.h" />
<ClInclude Include="$(IcuSrcDir)\common\charstr.h" />
<ClInclude Include="$(IcuSrcDir)\common\cmemory.h" />
<ClInclude Include="$(IcuSrcDir)\common\cpputils.h" />
<ClInclude Include="$(IcuSrcDir)\common\cstring.h" />
<ClInclude Include="$(IcuSrcDir)\common\cwchar.h" />
<ClInclude Include="$(IcuSrcDir)\common\dictbe.h" />
<ClInclude Include="$(IcuSrcDir)\common\dictionarydata.h" />
<ClInclude Include="$(IcuSrcDir)\common\hash.h" />
<ClInclude Include="$(IcuSrcDir)\common\icuplugimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\localsvc.h" />
<ClInclude Include="$(IcuSrcDir)\common\locbased.h" />
<ClInclude Include="$(IcuSrcDir)\common\locmap.h" />
<ClInclude Include="$(IcuSrcDir)\common\locutil.h" />
<ClInclude Include="$(IcuSrcDir)\common\lrucache.h" />
<ClInclude Include="$(IcuSrcDir)\common\messageimpl.h" />
<ClInclude Include="$(IcuSrcDir)\common\msvcres.h" />
<ClInclude Include="$(IcuSrcDir)\common\mutex.h" />
<ClInclude Include="$(IcuSrcDir)\common\normalizer2impl.h" />
<ClInclude Include="$(IcuSrcDir)\common\patternprops.h" />
<ClInclude Include="$(IcuSrcDir)\common\propname.h" />
<ClInclude Include="$(IcuSrcDir)\common\propname_data.h" />
<ClInclude Include="$(IcuSrcDir)\common\propsvec.h" />
<ClInclude Include="$(IcuSrcDir)\common\punycode.h" />
<ClInclude Include="$(IcuSrcDir)\common\putilimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbidata.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbinode.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbirb.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbirpt.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbiscan.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbisetb.h" />
<ClInclude Include="$(IcuSrcDir)\common\rbbitblb.h" />
<ClInclude Include="$(IcuSrcDir)\common\ruleiter.h" />
<ClInclude Include="$(IcuSrcDir)\common\serv.h" />
<ClInclude Include="$(IcuSrcDir)\common\servloc.h" />
<ClInclude Include="$(IcuSrcDir)\common\servnotf.h" />
<ClInclude Include="$(IcuSrcDir)\common\sharedobject.h" />
<ClInclude Include="$(IcuSrcDir)\common\sharedptr.h" />
<ClInclude Include="$(IcuSrcDir)\common\simplepatternformatter.h" />
<ClInclude Include="$(IcuSrcDir)\common\sprpimpl.h" />
<ClInclude Include="$(IcuSrcDir)\common\uarrsort.h" />
<ClInclude Include="$(IcuSrcDir)\common\uassert.h" />
<ClInclude Include="$(IcuSrcDir)\common\ubidi_props.h" />
<ClInclude Include="$(IcuSrcDir)\common\ubidi_props_data.h" />
<ClInclude Include="$(IcuSrcDir)\common\ubidiimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ubrkimpl.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucase.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucase_props_data.h" />
<ClInclude Include="$(IcuSrcDir)\common\uchar_props_data.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucln.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucln_cmn.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucln_imp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucmndata.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnv_bld.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnv_cnv.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnv_ext.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnv_imp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnv_io.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucnvmbcs.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucol_data.h" />
<ClInclude Include="$(IcuSrcDir)\common\ucol_swp.h" />
<ClInclude Include="$(IcuSrcDir)\common\udatamem.h" />
<ClInclude Include="$(IcuSrcDir)\common\udataswp.h" />
<ClInclude Include="$(IcuSrcDir)\common\uelement.h" />
<ClInclude Include="$(IcuSrcDir)\common\uenumimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\uhash.h" />
<ClInclude Include="$(IcuSrcDir)\common\uinvchar.h" />
<ClInclude Include="$(IcuSrcDir)\common\ulist.h" />
<ClInclude Include="$(IcuSrcDir)\common\ulocimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\umapfile.h" />
<ClInclude Include="$(IcuSrcDir)\common\umutex.h" />
<ClInclude Include="$(IcuSrcDir)\common\unisetspan.h" />
<ClInclude Include="$(IcuSrcDir)\common\unormimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\uposixdefs.h" />
<ClInclude Include="$(IcuSrcDir)\common\uprops.h" />
<ClInclude Include="$(IcuSrcDir)\common\uresdata.h" />
<ClInclude Include="$(IcuSrcDir)\common\uresimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ureslocs.h" />
<ClInclude Include="$(IcuSrcDir)\common\usc_impl.h" />
<ClInclude Include="$(IcuSrcDir)\common\uset_imp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ustr_cnv.h" />
<ClInclude Include="$(IcuSrcDir)\common\ustr_imp.h" />
<ClInclude Include="$(IcuSrcDir)\common\ustrenum.h" />
<ClInclude Include="$(IcuSrcDir)\common\ustrfmt.h" />
<ClInclude Include="$(IcuSrcDir)\common\util.h" />
<ClInclude Include="$(IcuSrcDir)\common\utracimp.h" />
<ClInclude Include="$(IcuSrcDir)\common\utrie.h" />
<ClInclude Include="$(IcuSrcDir)\common\utrie2.h" />
<ClInclude Include="$(IcuSrcDir)\common\utrie2_impl.h" />
<ClInclude Include="$(IcuSrcDir)\common\utypeinfo.h" />
<ClInclude Include="$(IcuSrcDir)\common\uvector.h" />
<ClInclude Include="$(IcuSrcDir)\common\uvectr32.h" />
<ClInclude Include="$(IcuSrcDir)\common\uvectr64.h" />
<ClInclude Include="$(IcuSrcDir)\common\wintz.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(IcuSrcDir)\i18n\filteredbrk.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\region.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uregion.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\alphaindex.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\bocsu.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\coleitr.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\coll.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collation.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationbasedatabuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationbuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationcompare.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationdata.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationdatabuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationdatareader.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationdatawriter.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationfastlatin.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationfastlatinbuilder.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationfcd.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationkeys.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationroot.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationrootelements.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationruleparser.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationsets.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationsettings.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationtailoring.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\collationweights.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rulebasedcollator.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\search.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\sortkey.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\stsearch.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tzfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tzgnames.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tznames.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tznames_impl.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucol.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucol_res.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucol_sit.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucoleitr.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uitercollationiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\usearch.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\astro.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\basictz.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\buddhcal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\calendar.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\cecal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\chnsecal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\choicfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\compactdecimalformat.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\coptccal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\curramt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\currfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\currpinf.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\currunit.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dangical.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\datefmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dcfmtsym.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\decContext.c" />
<ClCompile Include="$(IcuSrcDir)\i18n\decfmtst.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\decimalformatpattern.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\decimfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\decNumber.c" />
<ClCompile Include="$(IcuSrcDir)\i18n\digitlst.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dtfmtsym.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dtitvfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dtitvinf.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dtptngen.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\dtrule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ethpccal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\fmtable.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\fmtable_cnv.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\format.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\fphdlimp.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\fpositer.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\gender.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\gregocal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\gregoimp.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\hebrwcal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\identifier_info.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\indiancal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\islamcal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\japancal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\locdspnm.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\measfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\measunit.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\measure.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\msgfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\nfrs.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\nfrule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\nfsubs.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\numfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\numsys.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\olsontz.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\persncal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\plurfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\plurrule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\quantityformatter.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbnf.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbtz.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\reldatefmt.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\i18n\reldtfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\selfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\simpletz.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\scriptset.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\smpdtfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\smpdtfst.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\taiwncal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\timezone.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tmunit.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tmutamt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tmutfmt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tzrule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tztrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucal.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucurr.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\udat.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\udateintervalformat.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\udatpg.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ulocdata.c" />
<ClCompile Include="$(IcuSrcDir)\i18n\umsg.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\unum.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\unumsys.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\upluralrules.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\utf16collationiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\utf8collationiterator.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\utmscale.c" />
<ClCompile Include="$(IcuSrcDir)\i18n\vtzone.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\vzone.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\windtfmt.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\i18n\winnmfmt.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\i18n\wintzimpl.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\i18n\zonemeta.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\zrule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ztrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucln_in.c">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
<ClCompile Include="$(IcuSrcDir)\i18n\regexcmp.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\regeximp.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\regexst.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\regextxt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rematch.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\repattrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uregex.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uregexc.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\anytrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\brktrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\casetrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\cpdtrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\esctrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\funcrepl.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\name2uni.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\nortrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\nultrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\quant.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbt.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbt_data.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbt_pars.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbt_rule.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\rbt_set.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\remtrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\strmatch.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\strrepl.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\titletrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tolowtrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\toupptrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\translit.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\transreg.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\tridpars.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\unesctrn.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uni2name.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\utrans.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csdetect.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csmatch.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csr2022.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csrecog.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csrmbcs.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csrsbcs.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csrucode.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\csrutf8.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\inputext.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\ucsdet.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uspoof.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uspoof_build.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uspoof_conf.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uspoof_impl.cpp" />
<ClCompile Include="$(IcuSrcDir)\i18n\uspoof_wsconf.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(IcuSrcDir)\i18n\bocsu.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collation.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationbasedatabuilder.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationbuilder.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationcompare.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationdata.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationdatabuilder.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationdatareader.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationdatawriter.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationfastlatin.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationfastlatinbuilder.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationfcd.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationiterator.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationkeys.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationroot.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationrootelements.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationruleparser.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationsets.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationsettings.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationtailoring.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\collationweights.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\dcfmtimp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\numsys_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\region_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\selfmtimpl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\tzgnames.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\tznames_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\ucol_imp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\uitercollationiterator.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\unicode\filteredbrk.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\usrchimp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\astro.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\buddhcal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\cecal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\chnsecal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\coptccal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\currfmt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\dangical.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\decContext.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\decfmtst.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\decimalformatpattern.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\decNumber.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\decNumberLocal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\digitlst.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\dtitv_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\dtptngen_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\ethpccal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\fphdlimp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\gregoimp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\hebrwcal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\indiancal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\islamcal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\japancal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\msgfmt_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nfrlist.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nfrs.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nfrule.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nfsubs.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\olsontz.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\persncal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\plurrule_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\quantityformatter.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\sharednumberformat.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\sharedpluralrules.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\reldtfmt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\smpdtfst.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\taiwncal.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\ucurrimp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\umsg_imp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\utf16collationiterator.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\utf8collationiterator.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\vzone.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\windtfmt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\winnmfmt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\wintzimpl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\zonemeta.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\zrule.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\ztrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\ucln_in.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\regexcmp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\regexcst.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\regeximp.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\regexst.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\regextxt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\anytrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\brktrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\casetrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\cpdtrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\esctrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\funcrepl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\name2uni.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nortrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\nultrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\quant.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\rbt.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\rbt_data.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\rbt_pars.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\rbt_rule.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\rbt_set.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\remtrans.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\strmatch.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\strrepl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\titletrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\tolowtrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\toupptrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\transreg.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\tridpars.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\unesctrn.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\uni2name.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csdetect.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csmatch.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csr2022.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csrecog.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csrmbcs.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csrsbcs.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csrucode.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\csrutf8.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\inputext.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\identifier_info.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\scriptset.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\uspoof_conf.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\uspoof_impl.h" />
<ClInclude Include="$(IcuSrcDir)\i18n\uspoof_wsconf.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\luajit-minilua\luajit-minilua.vcxproj">
<Project>{fcaed410-90ef-4ef9-916c-4b86dc13a3cf}</Project>
</ProjectReference>
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +0,0 @@
-- Copyright (c) 2014, Thomas Goyne <plorkyeran@aegisub.org>
--
-- Permission to use, copy, modify, and distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--
-- Aegisub Project http://www.aegisub.org/
local ICU_VERSION = 'icudt53'
local function try_open(filename, mode)
local file, err = io.open(filename, mode)
if not file then
io.stdout:write(string.format('Failed to open "%s": %s\n', filename, err))
os.exit(1)
end
return file
end
local icu_root, out_path = ...
local infile = try_open(string.format('%s/data/in/%sl.dat', icu_root, ICU_VERSION), 'rb')
local outfile = try_open(out_path, 'w')
outfile:write("const unsigned char " .. ICU_VERSION .. "_dat[] = {")
local len = 0
while true do
local bytes = infile:read(65536)
if not bytes then break end
for i = 1, #bytes do
if len > 0 then outfile:write(',') end
outfile:write(string.format('%d', bytes:byte(i)))
len = len + 1
end
end
outfile:write('};\n')

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<InstallHeader>
<Destination></Destination>
</InstallHeader>
</ItemDefinitionGroup>
<Target
Name="ComputeHeaderOutputs"
Inputs="@(InstallHeader)"
Outputs="@(InstallHeader->'%(HeaderRoot)\%(RelativeDir)')"
BeforeTargets="InstallHeaders"
>
<CalculateOutputDir
Items="@(InstallHeader)"
SourceDir="%(HeaderRoot)"
DestinationDir="$(AegisubSourceBase)include"
>
<Output ItemName="_InstallHeader" TaskParameter="Outputs" />
</CalculateOutputDir>
</Target>
<Target
Name="InstallHeaders"
BeforeTargets="ClCompile"
Inputs="@(_InstallHeader)"
Outputs="@(_InstallHeader->'%(OutputDir)%(Destination)%(Filename)%(Extension)')"
>
<Error
Condition="'%(_InstallHeader.OutputDir)' == ''"
Text="OutputDir for _InstallHeader item is blank, problem during ComputeHeaderOutputs target?"
/>
<Copy
SourceFiles="@(_InstallHeader)"
DestinationFiles="@(_InstallHeader->'%(OutputDir)%(Destination)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
/>
</Target>
</Project>

View File

@ -1,188 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{BB3FED86-DB7A-4DC7-964A-260FB86CDE61}</ProjectGuid>
<RootNamespace>libaegisub</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\libaegisub\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(WindowsSDK_IncludePath);
$(SrcDir);
$(SrcDir)include;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
NOMINMAX;
_WIN32_WINNT=0x0602;
_CRT_NONSTDC_NO_DEPRECATE;
WITH_UCHARDET;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>lagi_pre.h</PrecompiledHeaderFile>
<ForcedIncludeFiles>lagi_pre.h</ForcedIncludeFiles>
<InputRelativeSourceDir>$(SrcDir)</InputRelativeSourceDir>
</ClCompile>
</ItemDefinitionGroup>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\boost\boost.vcxproj">
<Project>{a649d828-a399-4d81-adef-94cfdba7847f}</Project>
</ProjectReference>
<ProjectReference Include="..\icu\icu.vcxproj">
<Project>{f934ab7b-186b-4e96-b20c-a58c38c1b818}</Project>
</ProjectReference>
<ProjectReference Include="..\libiconv\libiconv.vcxproj">
<Project>{965054d2-44f2-4eb2-9879-051cc3d7ef08}</Project>
</ProjectReference>
<ProjectReference Include="..\luabins\luabins.vcxproj">
<Project>{A7A30702-8162-4E1A-A010-EF51B590C121}</Project>
</ProjectReference>
<ProjectReference Include="..\luajit\luajit.vcxproj">
<Project>{5391a8b1-9c70-4dc4-92ad-d3e34c6b803f}</Project>
</ProjectReference>
<ProjectReference Include="..\universalchardet\universalchardet.vcxproj">
<Project>{7b56955d-5162-4698-aa5b-47484edc8783}</Project>
</ProjectReference>
</ItemGroup>
<!-- Source files -->
<ItemGroup>
<ClInclude Include="$(SrcDir)common\charset_6937.h" />
<ClInclude Include="$(SrcDir)common\parser.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\access.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\address_of_adaptor.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\ass\dialogue_parser.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\ass\smpte.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\ass\time.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\ass\uuencode.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\audio\provider.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\background_runner.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\elements.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\reader.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\visitor.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\writer.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\calltip_provider.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\character_count.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\charset.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\charset_conv.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\charset_conv_win.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\color.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\dispatch.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\exception.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\file_mapping.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\format.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\format_flyweight.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\format_path.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\fs.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\fs_fwd.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\hotkey.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\io.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\json.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\kana_table.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\karaoke_matcher.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\keyframe.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\line_iterator.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\line_wrap.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\log.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\lua\ffi.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\lua\modules.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\lua\script_reader.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\lua\utils.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\make_unique.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\mru.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\of_type_adaptor.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\option.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\option_value.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\owning_intrusive_list.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\path.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\scoped_ptr.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\signal.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\spellchecker.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\split.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\thesaurus.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\type_name.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\util.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\util_osx.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\vfr.h" />
<ClInclude Include="$(SrcDir)include\libaegisub\ycbcr_conv.h" />
<ClInclude Include="$(SrcDir)lagi_pre.h" />
<ClInclude Include="$(SrcDir)lua\modules\lpeg.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)windows\lagi_pre.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
<PrecompiledHeaderFile>lagi_pre.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="$(SrcDir)ass\dialogue_parser.cpp" />
<ClCompile Include="$(SrcDir)ass\time.cpp" />
<ClCompile Include="$(SrcDir)ass\uuencode.cpp" />
<ClCompile Include="$(SrcDir)audio\provider.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_convert.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_dummy.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_hd.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_lock.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_pcm.cpp" />
<ClCompile Include="$(SrcDir)audio\provider_ram.cpp" />
<ClCompile Include="$(SrcDir)common\cajun\elements.cpp" />
<ClCompile Include="$(SrcDir)common\cajun\reader.cpp" />
<ClCompile Include="$(SrcDir)common\cajun\writer.cpp" />
<ClCompile Include="$(SrcDir)common\calltip_provider.cpp" />
<ClCompile Include="$(SrcDir)common\character_count.cpp" />
<ClCompile Include="$(SrcDir)common\charset.cpp" />
<ClCompile Include="$(SrcDir)common\charset_6937.cpp" />
<ClCompile Include="$(SrcDir)common\charset_conv.cpp" />
<ClCompile Include="$(SrcDir)common\color.cpp" />
<ClCompile Include="$(SrcDir)common\dispatch.cpp" />
<ClCompile Include="$(SrcDir)common\file_mapping.cpp" />
<ClCompile Include="$(SrcDir)common\format.cpp" />
<ClCompile Include="$(SrcDir)common\fs.cpp" />
<ClCompile Include="$(SrcDir)common\hotkey.cpp" />
<ClCompile Include="$(SrcDir)common\io.cpp" />
<ClCompile Include="$(SrcDir)common\json.cpp" />
<ClCompile Include="$(SrcDir)common\kana_table.cpp" />
<ClCompile Include="$(SrcDir)common\karaoke_matcher.cpp" />
<ClCompile Include="$(SrcDir)common\keyframe.cpp" />
<ClCompile Include="$(SrcDir)common\line_iterator.cpp" />
<ClCompile Include="$(SrcDir)common\log.cpp" />
<ClCompile Include="$(SrcDir)common\mru.cpp" />
<ClCompile Include="$(SrcDir)common\option.cpp" />
<ClCompile Include="$(SrcDir)common\option_value.cpp" />
<ClCompile Include="$(SrcDir)common\parser.cpp" />
<ClCompile Include="$(SrcDir)common\path.cpp" />
<ClCompile Include="$(SrcDir)common\thesaurus.cpp" />
<ClCompile Include="$(SrcDir)common\util.cpp" />
<ClCompile Include="$(SrcDir)common\vfr.cpp" />
<ClCompile Include="$(SrcDir)common\ycbcr_conv.cpp" />
<ClCompile Include="$(SrcDir)lua\modules.cpp" />
<ClCompile Include="$(SrcDir)lua\modules\lfs.cpp" />
<ClCompile Include="$(SrcDir)lua\modules\lpeg.c">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<ForcedIncludeFiles></ForcedIncludeFiles>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules\re.cpp" />
<ClCompile Include="$(SrcDir)lua\modules\unicode.cpp" />
<ClCompile Include="$(SrcDir)lua\script_reader.cpp" />
<ClCompile Include="$(SrcDir)lua\utils.cpp" />
<ClCompile Include="$(SrcDir)windows\access.cpp" />
<ClCompile Include="$(SrcDir)windows\charset_conv_win.cpp" />
<ClCompile Include="$(SrcDir)windows\fs.cpp" />
<ClCompile Include="$(SrcDir)windows\log_win.cpp" />
<ClCompile Include="$(SrcDir)windows\path_win.cpp" />
<ClCompile Include="$(SrcDir)windows\util_win.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)include\libaegisub\charsets.def" />
</ItemGroup>
</Project>

View File

@ -1,388 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Source Files\Common">
<UniqueIdentifier>{4084442f-51e9-4c31-8d5a-c825e076c012}</UniqueIdentifier>
</Filter>
<Filter Include="cajun">
<UniqueIdentifier>{1d2e187a-1681-4c30-8912-a4b5a5d0ab9d}</UniqueIdentifier>
</Filter>
<Filter Include="ASS">
<UniqueIdentifier>{c97bd8a3-ebb7-4c43-9ca0-4ab8479d9388}</UniqueIdentifier>
</Filter>
<Filter Include="Lua">
<UniqueIdentifier>{ce495b25-1630-42e1-8ab0-053c313448f0}</UniqueIdentifier>
</Filter>
<Filter Include="Lua\Modules">
<UniqueIdentifier>{2cf3ad94-e8a9-4a89-b47e-29523d90fd08}</UniqueIdentifier>
</Filter>
<Filter Include="Audio">
<UniqueIdentifier>{fce4f3aa-dc34-44fe-9a6a-99b0914e3436}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Windows">
<UniqueIdentifier>{5af331b5-ea1f-493f-abf9-f5912e2350df}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)common\charset_6937.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\access.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\charset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\charset_conv.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\charset_conv_win.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\exception.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\io.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\line_iterator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\line_wrap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\log.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\mru.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\option.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\option_value.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\scoped_ptr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\thesaurus.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\type_name.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\util_osx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\vfr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)lagi_pre.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\writer.h">
<Filter>cajun</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\visitor.h">
<Filter>cajun</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\elements.h">
<Filter>cajun</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\cajun\reader.h">
<Filter>cajun</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\hotkey.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\json.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\keyframe.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\signal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\background_runner.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\color.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\spellchecker.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\ass\dialogue_parser.h">
<Filter>ASS</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\ass\smpte.h">
<Filter>ASS</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\ass\time.h">
<Filter>ASS</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)common\parser.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\of_type_adaptor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\calltip_provider.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\path.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\fs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\fs_fwd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\dispatch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\split.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\ass\uuencode.h">
<Filter>ASS</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\karaoke_matcher.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\kana_table.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\owning_intrusive_list.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\address_of_adaptor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\file_mapping.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\format.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\format_flyweight.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\format_path.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\character_count.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\make_unique.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\lua\utils.h">
<Filter>Lua</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\lua\script_reader.h">
<Filter>Lua</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)lua\modules\lpeg.h">
<Filter>Lua\Modules</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\lua\ffi.h">
<Filter>Lua</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\lua\modules.h">
<Filter>Lua</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\ycbcr_conv.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libaegisub\audio\provider.h">
<Filter>Audio</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)windows\lagi_pre.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\access.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\charset.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\charset_6937.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\charset_conv.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\charset_conv_win.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\log_win.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\line_iterator.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\log.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\log_win.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\mru.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\option.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\option_value.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\thesaurus.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\util_win.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\vfr.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\json.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\hotkey.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\keyframe.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\util.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\cajun\elements.cpp">
<Filter>cajun</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\cajun\reader.cpp">
<Filter>cajun</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\cajun\writer.cpp">
<Filter>cajun</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)ass\dialogue_parser.cpp">
<Filter>ASS</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)ass\time.cpp">
<Filter>ASS</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)ass\uuencode.cpp">
<Filter>ASS</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\color.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\parser.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\io.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\calltip_provider.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\path.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\path_win.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)windows\fs.cpp">
<Filter>Source Files\Windows</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\fs.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\format.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\dispatch.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\kana_table.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\karaoke_matcher.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\file_mapping.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\character_count.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\script_reader.cpp">
<Filter>Lua</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\utils.cpp">
<Filter>Lua</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules\lfs.cpp">
<Filter>Lua\Modules</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules\lpeg.c">
<Filter>Lua\Modules</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules\re.cpp">
<Filter>Lua\Modules</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules.cpp">
<Filter>Lua</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)lua\modules\unicode.cpp">
<Filter>Lua\Modules</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)common\ycbcr_conv.cpp">
<Filter>Source Files\Common</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_convert.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_dummy.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_hd.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_lock.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_pcm.cpp">
<Filter>Audio</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)audio\provider_ram.cpp">
<Filter>Audio</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)include\libaegisub\charsets.def">
<Filter>Header Files</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -1,6 +0,0 @@
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_NONSTDC_NO_DEPRECATE
#define CONFIG_ASM 1
#define CONFIG_RASTERIZER 1
#define CONFIG_DIRECTWRITE 1

View File

@ -1,6 +0,0 @@
// libass uses dirent in a function we don't use, so just provide a dummy version
typedef struct DIR { int dummy; } DIR;
typedef struct dirent { char *d_name; } dirent;
static inline DIR *opendir(const char *x) { return 0; }
static inline struct dirent *readdir(DIR *x) { return 0; }
static inline void closedir(DIR *x) { }

View File

@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{8804F253-DA67-4CC4-926B-0CD2AEE5778D}</ProjectGuid>
<RootNamespace>libass</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<ImportGroup Label="Targets">
<Import Project="$(MSBuildThisFileDirectory)..\yasm.targets" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
$(LibassSrcDir)\libass;
$(MSBuildThisFileDirectory);
$(FribidiSrcDir)\fribidi;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
inline=__inline;
FRIBIDI_ENTRY=;
_USE_MATH_DEFINES=;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(LibassSrcDir)\libass</HeaderRoot>
<Destination>ass\</Destination>
</InstallHeader>
<Yasm>
<Config Condition="'$(Platform)'=='Win32'">%(Config) -DARCH_X86_64=0 -DPREFIX -DHAVE_ALIGNED_STACK=0 -DHAVE_CPUNOP=1</Config>
<Config Condition="'$(Platform)'=='x64'">%(Config) -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=1 -DHAVE_CPUNOP=1</Config>
</Yasm>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(LibassSrcDir)\libass\ass.h" />
<InstallHeader Include="$(LibassSrcDir)\libass\ass_types.h" />
</ItemGroup>
<ItemGroup>
<Yasm Include="$(LibassSrcDir)\libass\x86\be_blur.asm">
<ExcludeFromBuild Condition="'$(Platform)'!='x64'">true</ExcludeFromBuild>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\blend_bitmaps.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\blur.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\cpuid.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\gaussian.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\rasterizer.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\utils.asm" />
<Yasm Include="$(LibassSrcDir)\libass\x86\x86inc.asm" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(LibassSrcDir)\libass\ass.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_bitmap.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_cache.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_cache_template.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_compat.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_directwrite.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_drawing.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_font.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_fontselect.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_func_template.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_library.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_outline.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_parse.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_rasterizer.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_render.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_shaper.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_string.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_types.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_utils.h" />
<ClInclude Include="$(LibassSrcDir)\libass\dwrite_c.h" />
<ClInclude Include="$(LibassSrcDir)\libass\x86\cpuid.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)config.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)strings.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(LibassSrcDir)\libass\ass.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_bitmap.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_blur.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_cache.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_directwrite.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_drawing.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_font.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_fontselect.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_library.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_outline.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_parse.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_rasterizer.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_rasterizer_c.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_render.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_render_api.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_shaper.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_string.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_strtod.c" />
<ClCompile Include="$(LibassSrcDir)\libass\ass_utils.c" />
<ClCompile Include="..\..\src\libass_gdi_fontselect.cpp" />
</ItemGroup>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\freetype2\freetype.vcxproj">
<Project>{78b079bd-9fc7-4b9e-b4a6-96da0f00248b}</Project>
</ProjectReference>
<ProjectReference Include="..\fribidi\fribidi.vcxproj">
<Project>{fb8e8d19-a4d6-4181-943c-282075f49b41}</Project>
</ProjectReference>
</ItemGroup>
</Project>

View File

@ -1,176 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Assembly Files">
<UniqueIdentifier>{56793734-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>asm</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Yasm Include="$(LibassSrcDir)\libass\x86\be_blur.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\blend_bitmaps.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\blur.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\cpuid.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<ClInclude Include="$(LibassSrcDir)\libass\x86\cpuid.h">
<Filter>Assembly Files</Filter>
</ClInclude>
<Yasm Include="$(LibassSrcDir)\libass\x86\gaussian.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\rasterizer.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\utils.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<Yasm Include="$(LibassSrcDir)\libass\x86\x86inc.asm">
<Filter>Assembly Files</Filter>
</Yasm>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(LibassSrcDir)\libass\ass.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_bitmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_cache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_cache_template.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_compat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_directwrite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_drawing.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_font.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_fontselect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_func_template.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_library.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_outline.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_parse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_rasterizer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_render.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_shaper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_string.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\dwrite_c.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)strings.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(LibassSrcDir)\libass\ass.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_bitmap.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_blur.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_cache.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_directwrite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_drawing.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_font.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_fontselect.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_library.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_outline.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_parse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_rasterizer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_rasterizer_c.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_render.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_render_api.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_shaper.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_string.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_strtod.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(LibassSrcDir)\libass\ass_utils.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libass_gdi_fontselect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -1,3 +0,0 @@
#define strncasecmp _strnicmp
#define strcasecmp _stricmp

View File

Some files were not shown because too many files have changed in this diff Show More