1
0
Fork 0

Compare commits

..

144 Commits

Author SHA1 Message Date
wangqr 64d0f86d8d Add git_version.h generation to CMake 2020-03-11 17:07:33 -04:00
wangqr b6b21930fa Use homebrew addon instead of manually executing 2020-03-09 20:23:48 -04:00
wangqr 7cad0e06f9 Remove redundant email notification 2020-03-09 20:01:24 -04:00
wangqr 3096376ee6 Revert special naming for LuaJIT shared object
This was a hack on macOS when LuaJIT is dynamic only, and no longer needed as we are also using static LuaJIT on macOS now
2020-03-09 19:56:24 -04:00
wangqr 460cf9a9fd Drop support for macOS < 10.10
They are less than 2.4% in all macOS and 0.2% in all OS
2020-03-09 19:50:56 -04:00
wangqr db855e8cf5 Fix Travis warning 2020-03-09 19:47:07 -04:00
wangqr ed83c39807 Add back unit test to macOS
This reverts commit 272c2f48f1.
2020-03-09 17:36:52 -04:00
wangqr 52032dc14b Upgrade LuaJIT to 2.1.0-beta3 2020-03-09 13:01:09 -04:00
wangqr 3a50ba0386 Fix osx-fix-libs.py
Create symbolic links, to make libicu happy
Rewrite the script in python3, as python2 is deprecated
2020-03-08 19:17:53 -04:00
C.W. Betts e7b64aa741 Poke the OS X icons.
More recent versions of OS X caused the old icons to display incorrectly/as garbage.
2020-03-08 17:48:52 -04:00
wangqr 8034fbbd22 Fix missing config option 2020-03-08 03:36:46 -04:00
wangqr 272c2f48f1 Ignore unit tests on macOS for now 2020-03-08 03:24:04 -04:00
wangqr b557dfcb6e Update build instructions in README
CMake is not tested on macOS now, so don't include it in README. Be more specific on where to find dependencies.
2020-03-08 03:06:04 -04:00
wangqr 3556c9629e Remove IME handling code for Scintilla
The code was for wxCocoa, which is a dead implementation of wxWidgets. wxOSX/Cocoa does not need this hack anymore. And the code is causing linking errors due to using private structures in wxCocoa.

Revert fffb138b81
2020-03-08 01:48:58 -05:00
wangqr f8bd53c479 Add macOS to travis 2020-03-08 01:37:27 -05:00
wangqr 50f63a54d0 Rewrite build instructions 2020-03-07 20:10:45 -05:00
wangqr 6cad7c3d6c Fix build issue with AviSynth on linux 2020-03-06 16:18:52 -05:00
wangqr 6bd3f4c26b Use target name without directory in $*_OBJ macro
Fix Aegisub/Aegisub#171
2020-02-17 15:08:29 +08:00
wangqr cd7ee8d505 Use the first matched font in GDI font lister
Previously, when reading font data, we only set FaceName to the matched font. When we are using some font with special font weight (e.g. @Source Han Sans J Heavy), if we do not correct the font weight in the LOGFONTW struct, then subsequent call to get_font_data will fall back to default font. This causes wrongly matching Arial.ttf to any font that does not provide standard font weights.

Instead of only correcting FaceName using the matched font, we simply use the first matched font, thus the FaceName, Weight, CharSet, etc. will all be correct. This also eliminates the memcpy.
2020-01-05 17:12:02 -05:00
wangqr cb77c0b395 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
2019-12-26 17:31:59 -05:00
wangqr 80ef2fbf35 Submit "align to video" on double click
Fix wangqr/Aegisub#34
2019-12-25 18:38:42 -05:00
wangqr 20fc9043e8 Don't shrink the size of layer SpinCtrl on GTK3 2019-11-21 23:04:51 -05:00
wangqr a520f8a4a3 Rerender video display after EVT_PAINT
Otherwise the video display will be blank after restore from minimized.
2019-11-10 23:17:43 -05:00
wangqr 1bda6052b6 Use GetSizeFromText instead of GetSizeFromTextSize(GetTextExtent) 2019-11-07 16:06:53 -05:00
wangqr 557e81be1d VideoDisplay: Move render code to render callback
Previously, Render is called every time when the content is updated from event callbacks. So simply moving the mouse around will spam the event queue and cause video stuck. Now we do render in render callback, and only set a flag to indicate the need of re-render.
2019-11-04 07:03:45 -05:00
wangqr f2676ddc3a Avisynth audio provider: add option to allow no downmix 2019-11-02 22:26:02 -04:00
Charlie Jiang a2fc4bf479 🐛 Fix: lagi: Don't close iconv_t if it is iconv_invalid
When certain iconv_t is invalid, iconv_invalid(0xfffffffffffffffffffffff) will be returned. Passing it to iconv_close will cause a SIGSEGV.
2019-11-02 21:23:27 -04:00
wangqr 71894fd769 Fix bugs in ram audio provider
There was some magic bit operations to calculate the cache block offsets. This only works when both bytes_per_sample and channels are power of 2. Originally the format is assumed to be int16 mono, which satisfies this requirement. However in case we use original audio data, the channels can be something not a power of 2 (e.g. for 5.1 channel audio the number of channels is 6). This will break the calculation. We rewrite the calculation, without using those bit operations.
2019-11-02 02:26:36 -04:00
wangqr 56434c5f58 Fix bugs in separating Int16Mono and original audio
* A memory leak in FillBufferInt16Mono
* A now unnecessary assert
2019-11-02 00:41:14 -04:00
Luke Gorrie 45cd713ef9 lj_str.c: Remove special-case string interning fastpath
lj_str_new() had a separate fast-path and slow-path. This was bad
because (a) the fast-path was complex and (b) the fast-path was
actually slower than the slow-path in practice and (c) in practice it
could cause confusing performance problems depending on the memory
alignment of any often-reused string buffers in a program.

This change specifically makes the 'life' benchmark faster and more
robust to memory layout.
2019-11-02 00:23:50 -04:00
wangqr 29fd12258f Fix lint warnings about unexpected */
Introduced in b86238456f
2019-11-02 00:23:50 -04:00
wangqr b947116937 Separate XAudio2 from DirectSound in preference and CMake 2019-11-02 00:23:50 -04:00
wangqr 309996aeb2 Remove the usage of __FILE__
Prepare for reproducible build
2019-11-02 00:23:44 -04:00
wangqr 2929b9db37 XAudio2: Try orignal sound format first, and fallback to 16bit mono on failure 2019-11-01 21:58:11 -04:00
wangqr 2ca9cf0de0 Fix unit tests
As we have removed the int16 convert and downmix related stuff.
2019-11-01 04:12:35 -04:00
wangqr 0336779735 Added experimental XAudio2 audio player
Removed downsampling in FFMS2 and CreateConvertAudioProvider, to ensure we can get the original audio channels and data.

Fix Aegisub/Aegisub#160
2019-11-01 03:32:42 -04:00
wangqr b86238456f Change channels number and bytes per second to hardcoded value
Because these audio players can only handle 16bit mono anyway.
2019-10-30 01:16:28 -04:00
wangqr 620033915a Handle channel > 1 in hd & ram cache audio provider 2019-10-30 00:47:45 -04:00
wangqr c1a4e0674b Move the ConvertAudioProvider into GetInt16MonoAudio function
And use a dummy ConvertAudioProvider to keep backward compatibility.
2019-10-30 00:19:10 -04:00
wangqr 24d52bb1ee Clearly state int16 Mono of the audio provider in function name
Most code assumes the audio provider is providing int16 single channel audio data, without actually checking them. In this commit, we add a new function to provide the needed int16 mono data with checking.
2019-10-29 21:45:40 -04:00
wangqr 7c5cac0316 Remove hardcoded height of the slider
Before this the slider is only partially displayed
2019-10-28 20:45:29 -04:00
wangqr 5fc01de1e5 Fix rotation degree calculation 2019-10-28 20:21:02 -04:00
wangqr bd7a7ac551 Remove duplicated version check 2019-10-28 11:22:24 -04:00
wangqr 41c0e49813 Only expand thumb at Paint
This will give a more natural indication of where the position is. When dragging with mouse, now the thumb block will always center under the mouse position.

Fix wangqr/Aegisub#26
2019-10-26 02:44:40 -04:00
wangqr f74b3acd0e Revert "Remove unused adv dependency"
This reverts commit ea4010dcbe.
adv is required for Sash and DataViewCtrl
2019-10-17 16:40:27 -04:00
wangqr 41bb13cff2 Fix FromUTF8 usage with wxWidgets 3.0 2019-10-17 16:14:21 -04:00
wangqr f92abc863e Remove exception in destructor of agi::io::Save
Provide Close() for error handling
Correctly parse boost error code
Handle failure in TextFileWriter

Fix wangqr/Aegisub#25
2019-10-17 03:29:59 -04:00
Thomas Goyne b2be79366e Adjust the index of the drag subtool button for the addition of the separator 2019-10-16 11:10:13 -04:00
wangqr ea4010dcbe Remove unused adv dependency 2019-10-05 09:53:07 -04:00
scx 8db6c60bc3 Update desktop file
- Add Keywords
 - Add StartupWMClass
 - Update Categories
2019-09-25 17:25:38 -04:00
wangqr 0e29c8d0e4 Modify make_pot to use xgettext instead of grep
To match the change in af5060d6a3
2019-09-25 17:23:10 -04:00
wangqr 0fbcaea871 Fix make_pot.sh 2019-09-25 16:59:34 -04:00
wangqr 7c76136726 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-23 11:58:51 -04:00
darealshinji d708f3ecd8 don't be too pedantic on the OpenAL checks 2019-09-22 20:12:00 -04:00
Yakauleu Uladzislau 22063d7e6b Added Belarusian Localization 2019-09-22 20:09:12 -04:00
wangqr 3c2414c0df Handle video flip and rotate metadata in ffms2
Fix Aegisub/Aegisub#149
2019-09-22 15:12:18 -04:00
wangqr 9c95e81784 Add gcc-9 to travis 2019-09-21 04:16:15 -04:00
wangqr 716549f2c9 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-18 18:11:18 -04:00
wangqr d5eba08cbe Add workaround for wrong initial wxTextCtrl size in about dialog
See https://trac.wxwidgets.org/ticket/18507

Fix wangqr/Aegisub#19
2019-09-17 20:25:50 -04:00
wangqr af5060d6a3 Fix msgfmt missing LINGUAS 2019-09-15 21:06:39 -04:00
wangqr e51b93683d 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-15 19:46:53 -04:00
wangqr f1ef3d2d2c Fix PCM provider bugs 2019-09-15 19:46:43 -04:00
wangqr a4d49c66d0 Fix failing unit tests on Windows 2019-09-15 00:45:25 -04:00
wangqr 7a8e2ec816 Fix gtest setup.bat on Windows 2019-09-14 21:11:03 -04:00
wangqr 186c98308e Use gettext for desktop file instead of intltool 2019-09-13 17:59:38 -04:00
wangqr 7c500a096a 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-13 15:49:15 -04:00
wangqr bd4c7789cf Add openal and CMake test to travis 2019-09-12 02:42:11 -04:00
wangqr 3eff75d56e 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-11 11:29:20 -04:00
wangqr da699f124e Fix wrong memset usage 2019-09-10 02:15:48 -04:00
wangqr 1204a3be85 Cleanup CMake 2019-09-10 01:37:48 -04:00
wangqr 9e6b7e94c0 Fix crash in cache invalidation
The original version uses a reverse iterator, whose .base() is invalid after KillMacroBlock() erases it.

Fix TypesettingTools/Aegisub#33
Fix Aegisub/Aegisub#142
2019-09-08 13:01:55 -04:00
davste0816 ad02d39f44 Fix Move Down button in Export dialog 2019-09-08 11:37:52 -04:00
davste0816 d914ad72b5 Add .webm to extension list, add .eac3 as an audio format
Co-Authored-By: FichteFoll <fichtefoll2@googlemail.com>
2019-09-08 11:37:52 -04:00
davste0816 055aa379e5 Recognize .opus as an audio format, .h264 .hevc as video formats 2019-09-08 11:37:45 -04:00
wangqr 97792e15a8 Add WITH_* switchs to CMake to optional features 2019-09-08 07:12:19 -04:00
wangqr 4a874de442 Fix missing autopoint 2019-09-08 05:53:48 -04:00
scx 5d14137710 make_pot.sh: Check presence of xmlstarlet and jq 2019-09-08 04:35:05 -04:00
scx d252dcf32d Integrate AppData file with build system 2019-09-08 04:35:05 -04:00
scx 4f351b8b4a Add AppData file template 2019-09-08 04:35:05 -04:00
scx c4e0f40370 Fix compiler flags
http://devel.aegisub.org/ticket/1899
http://devel.aegisub.org/ticket/1900
https://github.com/Aegisub/Aegisub/pull/29
2019-09-08 02:25:56 -04:00
scx 05c0ba0e46 Add missing AM_GNU_GETTEXT_VERSION macro
Bug: http://devel.aegisub.org/ticket/1914
2019-09-08 02:22:51 -04:00
wangqr e4e04c9e87 Stop using deprecated hunspell API 2019-09-08 00:29:41 -04:00
wangqr 81160b2ec0 Remove conflicting glext.h 2019-09-07 22:29:23 -04:00
wangqr bf28e7efc3 Add PulseAudio to cmake 2019-09-07 12:35:27 -04:00
wangqr c2c44f1ad2 Fix build warnings
For pimpl with anonymous namespace, see https://stackoverflow.com/questions/39684438
2019-09-07 01:31:16 -04:00
wangqr 5dd201bc2d Update README.md and prepare for release 2019-09-05 22:16:58 -04:00
wangqr 3663d118b6 Separate desktop template for CMake
So it does not affect the translation
2019-09-04 22:46:29 -04:00
wangqr 60a722db31 Don't internally reset the selection after collected fonts
This creates an inconsistency between UI and internal mode.

Fix wangqr/Aegisub#10
2019-09-03 11:58:20 -04:00
wangqr d65643ddee Remove extra semicolon 2019-09-02 22:23:19 -04:00
wangqr fbca222295 Add back original travis tests 2019-09-02 22:06:41 -04:00
wangqr 3225ae39f4 Fix Makefile build
A missing header (acconf.h) issue was introduced in 34575a9786
In 419386aadd, some new source files have been added but not added to the file list in Makefile
2019-09-02 13:46:50 -04:00
wangqr 888be0607f 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-01 22:55:13 -04:00
scx 4200b85fb4 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 Aegisub/Aegisub#131
2019-09-01 19:17:35 -04:00
wangqr 0b8b286767 Fix crash on right click due to no spell checker 2019-09-01 19:15:28 -04:00
wangqr 139132a964 Use AviSynth from system 2019-09-01 19:15:21 -04:00
wangqr 4a3689d6e7 Remove the trailing period in help text of time/align
Fix wangqr/Aegisub#7
2019-08-24 02:10:08 -04:00
wangqr 248e69a9b6 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-08-24 01:16:18 -04:00
wangqr 46474e0319 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
2019-08-24 01:12:16 -04:00
wangqr 50544cf749 Set the height of sub box back to 50px
Revert the change made in ad15c53fb1.
As a temporary solution for wangqr/Aegisub#4.
2019-08-18 22:25:50 -04:00
wangqr e9a68f22b9 Remove the usage of dummy wxTimerEvent 2019-07-24 09:11:17 -04:00
wangqr d6ddea0f65 Detect EBML magic number to skip encoding detection for MKV
MKV loads slow after f733297499
2019-06-16 19:16:31 -04:00
wangqr 2bbed6c5a0 Load audio when video is successfully loaded
Fix bug introduced in 8f40ca44ce
2019-06-06 16:32:26 -04:00
wangqr 592250eeaa Remove call to wxSizer::CalcMin and wxSizer::RecalcSizes
As they are used internally by Layout and should not be called
directly.
2019-06-06 15:24:40 -04:00
wangqr 8f40ca44ce Try auto loading audio from video only when actually loading a video
If the user drop some files into Aegisub, we try to load sub, video,
audio, etc from them. When "Automatically open audio when opening
video" is checked in config, we try to load audio from the path of
the video. This should only be done if the video is newly loaded. So
we should never try to load audio from video if the user is just
opening a subtitle.

See https://github.com/Aegisub/Aegisub/issues/121#issuecomment-498489847
2019-06-06 14:31:07 -04:00
wangqr f776db2d2b 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-06-03 22:08:11 -04:00
wangqr f9ffc46bf6 Add linux desktop icon 2019-05-22 20:45:51 -04:00
wangqr 019e68147e Fix FFT first sample location
Fix wangqr/Aegisub#1
2019-05-22 20:10:09 -04:00
wangqr f733297499 Rewrite encoding detection
Now feeds all data to uchardet, when uchardet is available. The file
size limit is removed.

When uchardet is not available, we look for UTF-8 BOM.
This should make loading UTF-8-BOM files faster.
Because Aegisub always save file in UTF-8-BOM, this should also
guarentee Aegisub will load large (>100MB) file saved by itself.

See Aegisub/Aegisub#110
2019-05-18 22:13:26 -04:00
wangqr 4c6d370d51 Add install target 2019-05-18 20:10:18 -04:00
wangqr b7c640d061 Fix High DPI issue on GTK
* Use icon size in the config
2019-05-17 13:58:14 -04:00
wangqr 2c06f03f5b Add AviSynth support 2019-05-16 11:07:57 -04:00
wangqr 1819fc8d8b Fix iconv ConversionFailure on long path 2019-05-16 11:04:53 -04:00
wangqr ba54e8d12f Fix build warnings 2019-05-11 21:36:34 -04:00
Ryan Lucia c76e410d30 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-05-11 20:04:29 -04:00
Ryan Lucia bb2cfb1fcd Properly ignore ASS whitespace characters in character counter 2019-05-11 20:00:49 -04:00
Ryan Lucia 9abcc03202 Add configuration options for colors in visual typesetting tools 2019-05-11 19:43:54 -04:00
Ryan Lucia 837d5a41d7 Update default config to modern standards 2019-05-11 19:38:10 -04:00
Ryan Lucia 875456c803 Use FFMS2 constant in place of magic number 2019-05-10 15:22:26 -04:00
Ryan Lucia 9ddecfdd46 Ignore VS build files
Most files were moved to .vs directory with VS15
2019-05-10 15:17:19 -04:00
Ryan Lucia 70f27eae4b 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-05-10 15:12:55 -04:00
Ryan Lucia 8d2ef3fca7 Point users at a functional bug tracker 2019-05-10 15:09:25 -04:00
Ryan Lucia 48869ae0ad Fix line order when splitting after current frame 2019-05-10 15:09:05 -04:00
Ryan Lucia b00285cf71 Use proper event for DoubleUpdater
Previously changes weren't recognized because the event bound was for integers
2019-05-10 15:06:01 -04:00
Ryan Lucia c6c9e05406 Remove dead forums link 2019-05-10 15:05:18 -04:00
Ryan Lucia fc1a78aeca Make translation assistant skipping whitespace an explicit setting 2019-05-10 15:04:48 -04:00
Ryan Lucia 38bb1790ab Remove Force BT.601 option and update color matrix guessing 2019-05-10 15:03:20 -04:00
Ryan Lucia fff08c4650 Add support for setting status bar text from Lua 2019-05-10 14:54:05 -04:00
wangqr 163d57d6a2 Fix LuaJIT segfault 2019-05-09 21:36:11 -04:00
wangqr 6266867586 Fix errors in AlignToVideo
* Call TimeAtFrame with correct parameter
* Fix syntax error
2019-05-09 16:54:20 -04:00
wangqr 4431f678ce Update about dialog 2019-05-09 16:30:38 -04:00
Charlie Jiang 419386aadd Merge remote-tracking branch 'origind-dev/master'
Add align to video function
2019-05-09 16:26:08 -04:00
wangqr c4cce28766 Update README to use CMake 2019-05-08 22:49:53 -04:00
wangqr 1ae2f60b9a Fix CMake build errors 2019-05-08 17:09:29 -04:00
wangqr b6eebcd7ef Fix build warnings 2019-05-08 17:09:07 -04:00
wangqr bf55264e6d Fix VS2019 compile issues 2019-05-08 16:34:53 -04:00
wangqr 34575a9786 Migrate to CMake to update packages easier 2019-05-08 16:34:39 -04:00
wangqr 69310d40ae 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-03-15 00:01:29 -04:00
wangqr 657d9d5149 Bump boost version to 1.69.0
Fix Aegisub/Aegisub#93
2019-03-14 23:58:28 -04:00
wangqr 043a45cf91 Add DPI aware to Aegisub manifest 2018-12-08 01:20:08 -05:00
wangqr ad15c53fb1 Add DPI awareness
* Removed most hard coded wxSize
* Sub edit box now have DPI aware icons
2018-12-08 01:20:08 -05:00
wangqr 841a35a6fd Fix overflow bound 2018-12-08 01:20:08 -05:00
wangqr ee7dc6af4e Fix millisecond to centisecond convertion
Fix Aegisub/Aegisub#94
2018-12-08 01:20:08 -05:00
wangqr 77da2436c5 Change some text box size to make it looks better on HiDPI 2018-12-08 01:20:08 -05:00
wangqr 7be2325629 Fix travis-ci build script 2018-12-08 00:48:00 -05:00
1592 changed files with 228834 additions and 25850 deletions

View File

@ -1,161 +0,0 @@
name: Meson CI
on:
push:
branches:
- master
- feature
- cibuilds
pull_request:
branches:
- master
- feature
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
-Dfribidi:tests=false
-Dfribidi:docs=false
-Dlibass:fontconfig=disabled
-Davisynth=enabled
-Dbestsource=enabled
-Dvapoursynth=enabled
#- {
# 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: macOS Release,
os: macos-latest,
buildtype: release,
args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true
}
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
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
$url = "https://github.com/leafo/moonscript/releases/download/win32-v0.5.0/moonscript-187bac54ee5a7450013e9c38e005a0e671b76f45.zip"
mkdir moonscript
Invoke-WebRequest -Uri $url -OutFile ".\moonscript\moonscript.zip"
cd moonscript
7z e moonscript.zip
Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Install dependencies (MacOS)
if: matrix.config.os == 'macos-latest'
run: |
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: matrix.config.os == 'ubuntu-latest'
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
- name: Configure
run: meson 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-latest'
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-latest'
with:
name: ${{ matrix.config.name }} - installer
path: build/Aegisub-*.dmg
if-no-files-found: error

111
.gitignore vendored
View File

@ -1,49 +1,92 @@
*.App
*.[oadi]
*.ass
*.avi
*.bz2
*.cache
*.dep
*.db
*.dll
*.dmg
*.exe
*.gch
*.gz
*.idb
*.ilk
*.log
*.manifest
!src/dpi_aware.manifest
*.mkv
*.mo
*.ncb
*.obj
*.opensdf
*.orig
*.pch
*.pdb
*.profdata
*.profraw
*.sdf
*.so
*.srt
*.suo
*.swp
*.ts
*.user
*.vsp
*.y4m
*.zip
*~
/bin
/include
/ipch
/lib
/obj
/tests/data
automation/vapoursynth/__pycache__
.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
packages/desktop/aegisub.desktop
packages/desktop/aegisub.desktop.template
packages/desktop/aegisub.appdata.xml
packages/desktop/aegisub.appdata.xml.template
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/jit/vmdef.lua
vendor/luajit/src/gen
vendor/luajit/src/lj_vm.s
vendor/luajit/src/luajit
# 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
.nuget
.vs

42
.gitmodules vendored Normal file
View File

@ -0,0 +1,42 @@
[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://github.com/BYVoid/uchardet
ignore = dirty

9
.nuget/NuGet.Config Normal file
View File

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

150
.nuget/NuGet.targets Normal file
View File

@ -0,0 +1,150 @@
<?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>

94
.travis.yml Normal file
View File

@ -0,0 +1,94 @@
os: linux
dist: bionic
language: cpp
git:
submodules: false
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
- sourceline: 'deb https://apt.kitware.com/ubuntu/ bionic main'
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
packages:
- libasound2-dev
- libfftw3-dev
- libhunspell-dev
- libfribidi-dev
- libass-dev
- libicu-dev
- luarocks
- cmake
- build-essential
- libboost-all-dev
- libffms2-dev
- libfontconfig1-dev
- libopenal-dev
- libuchardet-dev
- libwxgtk3.0-dev
- portaudio19-dev
- libpulse-dev
- autopoint
- libgtest-dev
- gcc-9
- g++-9
homebrew:
packages:
- autoconf
- boost
- ffmpeg
- ffms2
- fftw
- freetype
- fribidi
- gettext
- icu4c
- libass
- lua
- luarocks
- m4
- wxmac
update: true
env:
- ''
- BUILD_SUIT=autotools
- CC=gcc-9 CXX=g++-9
- BUILD_SUIT=autotools CC=gcc-9 CXX=g++-9
jobs:
include:
- os: osx
osx_image: xcode11.3
env: BUILD_SUIT=autotools
install:
- ./.travis/install.sh
script:
- if [ $TRAVIS_OS_NAME = 'osx' ]; then
export PATH="/usr/local/opt/gettext/bin:/usr/local/opt/icu4c/sbin:/usr/local/opt/icu4c/bin:$PATH";
export CPPFLAGS="-I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include";
export LDFLAGS="-L/usr/local/opt/gettext/lib -L/usr/local/opt/icu4c/lib";
export ACLOCAL_PATH="/usr/local/opt/gettext/share/aclocal";
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig";
./autogen.sh;
./configure --enable-debug || cat config.log;
make -j2 || travis_terminate 1;
make test || travis_terminate 1;
elif [ "$BUILD_SUIT" = "autotools" ]; then
export CPPFLAGS="-fprofile-arcs -ftest-coverage";
export LIBS="-lgcov";
./autogen.sh;
./configure --enable-debug || cat config.log;
make -j2 || travis_terminate 1;
make test || travis_terminate 1;
coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null;
else
mkdir build-dir;
cd build-dir;
cmake -DCMAKE_CXX_FLAGS='-Wall -Wextra -Wno-unused-parameter -pedantic' -DCMAKE_C_FLAGS='-Wall' -DWITH_STARTUPLOG=ON -DWITH_TEST=ON ..;
make -j2 || travis_terminate 1;
make test || travis_terminate 1;
fi

21
.travis/install.sh Executable file
View File

@ -0,0 +1,21 @@
#! /bin/bash
set -e
if [ "$TRAVIS_OS_NAME" = 'linux' ]; then
# Remove the CMake provided by travis
sudo rm -rf /usr/local/cmake*
if [ "$BUILD_SUIT" = 'autotools' ]; then
sudo pip install -U cpp-coveralls;
git submodule --quiet init;
git submodule --quiet update vendor/googletest;
else
pushd /usr/src/googletest;
sudo cmake .;
sudo make install -j2;
popd;
fi
fi
sudo luarocks install busted > /dev/null
sudo luarocks install moonscript > /dev/null
sudo luarocks install uuid > /dev/null

572
Aegisub.sln Normal file
View File

@ -0,0 +1,572 @@
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

78
CMakeLists.test.txt Normal file
View File

@ -0,0 +1,78 @@
if(UNIX)
add_executable(aegisub-lua EXCLUDE_FROM_ALL
automation/tests/aegisub.cpp
)
target_include_directories(aegisub-lua PRIVATE ${Boost_INCLUDE_DIRS})
target_link_directories(aegisub-lua PRIVATE ${Boost_LIBRARY_DIRS})
target_link_libraries(aegisub-lua libaegisub luabins luajit ${Boost_LIBRARIES} ${ICU_LIBRARIES})
add_custom_target(test-automation
COMMAND sh -c "$(luarocks path); ${PROJECT_BINARY_DIR}/aegisub-lua tests/busted.lua -p moon tests/modules"
VERBATIM
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/automation"
)
add_dependencies(test-automation aegisub-lua)
else()
add_custom_target(test-automation)
endif()
find_package(GTest)
if(GTEST_FOUND)
add_executable(gtest-run EXCLUDE_FROM_ALL
tests/tests/access.cpp
tests/tests/audio.cpp
tests/tests/cajun.cpp
tests/tests/calltip_provider.cpp
tests/tests/character_count.cpp
tests/tests/color.cpp
tests/tests/dialogue_lexer.cpp
tests/tests/format.cpp
tests/tests/fs.cpp
tests/tests/hotkey.cpp
tests/tests/iconv.cpp
tests/tests/ifind.cpp
tests/tests/karaoke_matcher.cpp
tests/tests/keyframe.cpp
tests/tests/line_iterator.cpp
tests/tests/line_wrap.cpp
tests/tests/mru.cpp
tests/tests/option.cpp
tests/tests/path.cpp
tests/tests/signals.cpp
tests/tests/split.cpp
tests/tests/syntax_highlight.cpp
tests/tests/thesaurus.cpp
tests/tests/time.cpp
tests/tests/type_name.cpp
tests/tests/util.cpp
tests/tests/uuencode.cpp
tests/tests/vfr.cpp
tests/tests/word_split.cpp
tests/support/main.cpp
tests/support/util.cpp
)
target_compile_definitions(gtest-run PRIVATE CMAKE_BUILD)
target_include_directories(gtest-run PRIVATE tests/support ${Boost_INCLUDE_DIRS} ${Iconv_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS})
target_link_libraries(gtest-run libaegisub ${Boost_LIBRARIES} ${ICU_LIBRARIES} ${GTEST_LIBRARIES})
if(MSVC)
set_target_properties(gtest-run PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h")
else()
target_compile_options(gtest-run PRIVATE -include "${PROJECT_SOURCE_DIR}/tests/support/tests_pre.h")
endif()
if(WIN32)
add_custom_target(test-aegisub
COMMAND "${PROJECT_SOURCE_DIR}/tests/setup.bat"
COMMAND gtest-run
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/tests"
)
else()
add_custom_target(test-aegisub
COMMAND "${PROJECT_SOURCE_DIR}/tests/setup.sh"
COMMAND gtest-run
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/tests"
)
endif()
else()
add_custom_target(test-aegisub)
endif()
add_custom_target(test DEPENDS test-automation test-aegisub)

837
CMakeLists.txt Normal file
View File

@ -0,0 +1,837 @@
cmake_minimum_required(VERSION 3.14)
cmake_policy(SET CMP0074 NEW)
project(Aegisub)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include_directories("build")
include_directories("libaegisub/include")
include_directories("vendor/luajit/src")
add_library(libaegisub STATIC
libaegisub/common/parser.cpp
libaegisub/ass/dialogue_parser.cpp
libaegisub/ass/time.cpp
libaegisub/ass/uuencode.cpp
libaegisub/audio/provider.cpp
libaegisub/audio/provider_convert.cpp
libaegisub/audio/provider_dummy.cpp
libaegisub/audio/provider_hd.cpp
libaegisub/audio/provider_lock.cpp
libaegisub/audio/provider_pcm.cpp
libaegisub/audio/provider_ram.cpp
libaegisub/common/cajun/elements.cpp
libaegisub/common/cajun/reader.cpp
libaegisub/common/cajun/writer.cpp
libaegisub/lua/modules/lfs.cpp
libaegisub/lua/modules/re.cpp
libaegisub/lua/modules/unicode.cpp
libaegisub/lua/modules/lpeg.c
libaegisub/lua/modules.cpp
libaegisub/lua/script_reader.cpp
libaegisub/lua/utils.cpp
libaegisub/common/calltip_provider.cpp
libaegisub/common/character_count.cpp
libaegisub/common/charset.cpp
libaegisub/common/charset_6937.cpp
libaegisub/common/charset_conv.cpp
libaegisub/common/color.cpp
libaegisub/common/file_mapping.cpp
libaegisub/common/format.cpp
libaegisub/common/fs.cpp
libaegisub/common/hotkey.cpp
libaegisub/common/io.cpp
libaegisub/common/json.cpp
libaegisub/common/kana_table.cpp
libaegisub/common/karaoke_matcher.cpp
libaegisub/common/keyframe.cpp
libaegisub/common/line_iterator.cpp
libaegisub/common/log.cpp
libaegisub/common/mru.cpp
libaegisub/common/option.cpp
libaegisub/common/option_value.cpp
libaegisub/common/path.cpp
libaegisub/common/thesaurus.cpp
libaegisub/common/util.cpp
libaegisub/common/vfr.cpp
libaegisub/common/ycbcr_conv.cpp
libaegisub/common/dispatch.cpp
)
if(UNIX)
target_sources(libaegisub PRIVATE
libaegisub/unix/access.cpp
libaegisub/unix/fs.cpp
libaegisub/unix/log.cpp
libaegisub/unix/path.cpp
libaegisub/unix/util.cpp
)
set_property(
SOURCE libaegisub/unix/path.cpp
PROPERTY COMPILE_DEFINITIONS
P_DATA="${CMAKE_INSTALL_PREFIX}/share/aegisub/"
)
elseif(WIN32)
target_sources(libaegisub PRIVATE
libaegisub/windows/access.cpp
libaegisub/windows/charset_conv_win.cpp
libaegisub/windows/fs.cpp
libaegisub/windows/lagi_pre.cpp
libaegisub/windows/log_win.cpp
libaegisub/windows/path_win.cpp
libaegisub/windows/util_win.cpp
)
endif()
set_target_properties(libaegisub PROPERTIES PREFIX "")
target_compile_definitions(libaegisub PRIVATE CMAKE_BUILD)
add_library(luabins STATIC
vendor/luabins/src/fwrite.c
vendor/luabins/src/load.c
vendor/luabins/src/luabins.c
vendor/luabins/src/luainternals.c
vendor/luabins/src/save.c
vendor/luabins/src/savebuffer.c
vendor/luabins/src/write.c
)
add_executable(luajit-minilua vendor/luajit/src/host/minilua.c)
if(NOT WIN32)
target_link_libraries(luajit-minilua m)
endif()
if(WIN32)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -D P64 -o gen/buildvm_arch.h vm_x86.dasc
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
else()
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
COMMAND luajit-minilua ../dynasm/dynasm.lua -LN -D WIN -D JIT -D FFI -o gen/buildvm_arch.h vm_x86.dasc
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
endif()
else()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
COMMAND luajit-minilua ../dynasm/dynasm.lua -D P64 -D JIT -D FFI -D FPU -D HFABI -D VER= -o gen/buildvm_arch.h vm_x86.dasc
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
else()
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/buildvm_arch.h
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen
COMMAND luajit-minilua ../dynasm/dynasm.lua -D JIT -D FFI -D FPU -D HFABI -D VER= -o gen/buildvm_arch.h vm_x86.dasc
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
endif()
endif()
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/src/libresrc/default_config.cpp ${PROJECT_SOURCE_DIR}/src/libresrc/default_config.h
DEPENDS ${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json
COMMAND luajit-minilua ../../tools/respack.lua manifest.respack default_config.cpp default_config.h
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/libresrc
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/src/libresrc/bitmap.cpp ${PROJECT_SOURCE_DIR}/src/libresrc/bitmap.h
COMMAND luajit-minilua ../../tools/respack.lua manifest.respack ../libresrc/bitmap.cpp ../libresrc/bitmap.h
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src/bitmaps
)
add_executable(luajit-buildvm
vendor/luajit/src/host/buildvm.c
vendor/luajit/src/host/buildvm_asm.c
vendor/luajit/src/host/buildvm_peobj.c
vendor/luajit/src/host/buildvm_lib.c
vendor/luajit/src/host/buildvm_fold.c
vendor/luajit/src/gen/buildvm_arch.h
)
target_compile_definitions(luajit-buildvm PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
target_include_directories(luajit-buildvm PRIVATE vendor/luajit/src vendor/luajit/src/gen)
if(UNIX)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/lj_vm.s
COMMAND luajit-buildvm -m elfasm -o lj_vm.s
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
elseif(MSVC)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/lj_vm.obj
COMMAND luajit-buildvm -m peobj -o lj_vm.obj
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
endif()
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_ffdef.h
COMMAND luajit-buildvm -m ffdef -o gen/lj_ffdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_bcdef.h
COMMAND luajit-buildvm -m bcdef -o gen/lj_bcdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_folddef.h
COMMAND luajit-buildvm -m folddef -o gen/lj_folddef.h lj_opt_fold.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_recdef.h
COMMAND luajit-buildvm -m recdef -o gen/lj_recdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/gen/lj_libdef.h
COMMAND luajit-buildvm -m libdef -o gen/lj_libdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/vendor/luajit/src/jit/vmdef.lua
COMMAND luajit-buildvm -m vmdef -o jit/vmdef.lua lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vendor/luajit/src
)
add_library(luajit STATIC
vendor/luajit/src/lib_base.c
vendor/luajit/src/lib_math.c
vendor/luajit/src/lib_bit.c
vendor/luajit/src/lib_string.c
vendor/luajit/src/lib_table.c
vendor/luajit/src/lib_io.c
vendor/luajit/src/lib_os.c
vendor/luajit/src/lib_package.c
vendor/luajit/src/lib_debug.c
vendor/luajit/src/lib_jit.c
vendor/luajit/src/lib_ffi.c
vendor/luajit/src/lj_gc.c
vendor/luajit/src/lj_err.c
vendor/luajit/src/lj_char.c
vendor/luajit/src/lj_bc.c
vendor/luajit/src/lj_obj.c
vendor/luajit/src/lj_buf.c
vendor/luajit/src/lj_str.c
vendor/luajit/src/lj_tab.c
vendor/luajit/src/lj_func.c
vendor/luajit/src/lj_udata.c
vendor/luajit/src/lj_meta.c
vendor/luajit/src/lj_debug.c
vendor/luajit/src/lj_state.c
vendor/luajit/src/lj_dispatch.c
vendor/luajit/src/lj_vmevent.c
vendor/luajit/src/lj_vmmath.c
vendor/luajit/src/lj_strscan.c
vendor/luajit/src/lj_strfmt.c
vendor/luajit/src/lj_strfmt_num.c
vendor/luajit/src/lj_api.c
vendor/luajit/src/lj_profile.c
vendor/luajit/src/lj_lex.c
vendor/luajit/src/lj_parse.c
vendor/luajit/src/lj_bcread.c
vendor/luajit/src/lj_bcwrite.c
vendor/luajit/src/lj_load.c
vendor/luajit/src/lj_ir.c
vendor/luajit/src/lj_opt_mem.c
vendor/luajit/src/lj_opt_fold.c
vendor/luajit/src/lj_opt_narrow.c
vendor/luajit/src/lj_opt_dce.c
vendor/luajit/src/lj_opt_loop.c
vendor/luajit/src/lj_opt_split.c
vendor/luajit/src/lj_opt_sink.c
vendor/luajit/src/lj_mcode.c
vendor/luajit/src/lj_snap.c
vendor/luajit/src/lj_record.c
vendor/luajit/src/lj_crecord.c
vendor/luajit/src/lj_ffrecord.c
vendor/luajit/src/lj_asm.c
vendor/luajit/src/lj_trace.c
vendor/luajit/src/lj_gdbjit.c
vendor/luajit/src/lj_ctype.c
vendor/luajit/src/lj_cdata.c
vendor/luajit/src/lj_cconv.c
vendor/luajit/src/lj_ccall.c
vendor/luajit/src/lj_ccallback.c
vendor/luajit/src/lj_carith.c
vendor/luajit/src/lj_clib.c
vendor/luajit/src/lj_cparse.c
vendor/luajit/src/lj_lib.c
vendor/luajit/src/lj_alloc.c
vendor/luajit/src/lib_aux.c
vendor/luajit/src/lib_init.c
vendor/luajit/src/gen/lj_ffdef.h
vendor/luajit/src/gen/lj_bcdef.h
vendor/luajit/src/gen/lj_folddef.h
vendor/luajit/src/gen/lj_recdef.h
vendor/luajit/src/gen/lj_libdef.h
vendor/luajit/src/jit/vmdef.lua
)
target_compile_definitions(luajit PRIVATE LUAJIT_ENABLE_LUA52COMPAT)
target_include_directories(luajit PRIVATE vendor/luajit/src/gen)
if(MSVC)
target_sources(luajit PRIVATE vendor/luajit/src/lj_vm.obj)
else()
target_sources(luajit PRIVATE vendor/luajit/src/lj_vm.s)
set_property(SOURCE vendor/luajit/src/lj_vm.s PROPERTY LANGUAGE C)
target_link_libraries(luajit ${CMAKE_DL_LIBS})
endif()
add_library(resrc STATIC
src/libresrc/bitmap.cpp
src/libresrc/default_config.cpp
src/libresrc/libresrc.cpp
)
add_library(csri STATIC
vendor/csri/lib/list.c
vendor/csri/lib/wrap.c
vendor/csri/subhelp/logging.c
)
target_include_directories(csri PRIVATE "vendor/csri/include")
if(WIN32)
target_include_directories(csri PRIVATE "vendor/csri/lib/win32")
target_sources(csri PRIVATE vendor/csri/lib/win32/enumerate.c)
else()
target_include_directories(csri PRIVATE "vendor/csri/lib/posix")
target_sources(csri PRIVATE vendor/csri/lib/posix/enumerate.c)
endif()
add_executable(Aegisub WIN32
src/command/app.cpp
src/command/audio.cpp
src/command/automation.cpp
src/command/command.cpp
src/command/edit.cpp
src/command/grid.cpp
src/command/help.cpp
src/command/keyframe.cpp
src/command/recent.cpp
src/command/subtitle.cpp
src/command/time.cpp
src/command/timecode.cpp
src/command/tool.cpp
src/command/video.cpp
src/command/vis_tool.cpp
src/dialog_about.cpp
src/dialog_align.cpp
src/dialog_attachments.cpp
src/dialog_automation.cpp
src/dialog_autosave.cpp
src/dialog_colorpicker.cpp
src/dialog_detached_video.cpp
src/dialog_dummy_video.cpp
src/dialog_export.cpp
src/dialog_export_ebu3264.cpp
src/dialog_fonts_collector.cpp
src/dialog_jumpto.cpp
src/dialog_kara_timing_copy.cpp
src/dialog_log.cpp
src/dialog_paste_over.cpp
src/dialog_progress.cpp
src/dialog_properties.cpp
src/dialog_resample.cpp
src/dialog_search_replace.cpp
src/dialog_selected_choices.cpp
src/dialog_selection.cpp
src/dialog_shift_times.cpp
src/dialog_spellchecker.cpp
src/dialog_style_editor.cpp
src/dialog_style_manager.cpp
src/dialog_styling_assistant.cpp
src/dialog_text_import.cpp
src/dialog_timing_processor.cpp
src/dialog_translation.cpp
src/dialog_video_details.cpp
src/dialog_video_properties.cpp
src/subtitle_format.cpp
src/subtitle_format_ass.cpp
src/subtitle_format_ebu3264.cpp
src/subtitle_format_encore.cpp
src/subtitle_format_microdvd.cpp
src/subtitle_format_mkv.cpp
src/subtitle_format_srt.cpp
src/subtitle_format_ssa.cpp
src/subtitle_format_transtation.cpp
src/subtitle_format_ttxt.cpp
src/subtitle_format_txt.cpp
src/visual_tool.cpp
src/visual_tool_clip.cpp
src/visual_tool_cross.cpp
src/visual_tool_drag.cpp
src/visual_tool_rotatexy.cpp
src/visual_tool_rotatez.cpp
src/visual_tool_scale.cpp
src/visual_tool_vector_clip.cpp
src/MatroskaParser.c
src/aegisublocale.cpp
src/ass_attachment.cpp
src/ass_dialogue.cpp
src/ass_entry.cpp
src/ass_export_filter.cpp
src/ass_exporter.cpp
src/ass_file.cpp
src/ass_karaoke.cpp
src/ass_override.cpp
src/ass_parser.cpp
src/ass_style.cpp
src/ass_style_storage.cpp
src/async_video_provider.cpp
src/audio_box.cpp
src/audio_colorscheme.cpp
src/audio_controller.cpp
src/audio_display.cpp
src/audio_karaoke.cpp
src/audio_marker.cpp
src/audio_player.cpp
src/audio_provider_factory.cpp
src/audio_renderer.cpp
src/audio_renderer_spectrum.cpp
src/audio_renderer_waveform.cpp
src/audio_timing_dialogue.cpp
src/audio_timing_karaoke.cpp
src/auto4_base.cpp
src/auto4_lua.cpp
src/auto4_lua_assfile.cpp
src/auto4_lua_dialog.cpp
src/auto4_lua_progresssink.cpp
src/base_grid.cpp
src/charset_detect.cpp
src/colorspace.cpp
src/colour_button.cpp
src/compat.cpp
src/context.cpp
src/export_fixstyle.cpp
src/export_framerate.cpp
src/fft.cpp
src/font_file_lister.cpp
src/frame_main.cpp
src/gl_text.cpp
src/gl_wrap.cpp
src/grid_column.cpp
src/help_button.cpp
src/hotkey.cpp
src/hotkey_data_view_model.cpp
src/image_position_picker.cpp
src/initial_line_state.cpp
src/main.cpp
src/menu.cpp
src/mkv_wrap.cpp
src/pen.cpp
src/persist_location.cpp
src/preferences.cpp
src/preferences_base.cpp
src/project.cpp
src/resolution_resampler.cpp
src/search_replace_engine.cpp
src/selection_controller.cpp
src/spellchecker.cpp
src/spline.cpp
src/spline_curve.cpp
src/string_codec.cpp
src/subs_controller.cpp
src/subs_edit_box.cpp
src/subs_edit_ctrl.cpp
src/subs_preview.cpp
src/subtitles_provider.cpp
src/subtitles_provider_libass.cpp
src/text_file_reader.cpp
src/text_file_writer.cpp
src/text_selection_controller.cpp
src/thesaurus.cpp
src/timeedit_ctrl.cpp
src/toggle_bitmap.cpp
src/toolbar.cpp
src/tooltip_manager.cpp
src/utils.cpp
src/validators.cpp
src/vector2d.cpp
src/version.cpp
src/video_box.cpp
src/video_controller.cpp
src/video_display.cpp
src/video_frame.cpp
src/video_out_gl.cpp
src/video_provider_cache.cpp
src/video_provider_dummy.cpp
src/video_provider_manager.cpp
src/video_provider_yuv4mpeg.cpp
src/video_slider.cpp
src/visual_feature.cpp
)
target_link_libraries(Aegisub ${CMAKE_DL_LIBS} libaegisub luabins luajit resrc csri)
target_compile_definitions(Aegisub PRIVATE CMAKE_BUILD)
if(WIN32)
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/build/git_version.h")
message(SEND_ERROR
"build/git_version.h not found.\n"
"Automatic generation of build/git_version.h is not supported on Windows. Please run\n"
" build/version.sh .\n"
"at the source directory from an environment with bash and git. You may use WSL, msys (git bash), or Cygwin."
)
endif()
else()
add_custom_target(git_version build/version.sh .
BYPRODUCTS "${PROJECT_SOURCE_DIR}/build/git_version.h" "${PROJECT_SOURCE_DIR}/build/git_version.xml"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)
add_dependencies(Aegisub git_version)
endif()
set(WITH_BUILD_CREDIT OFF CACHE BOOL "Whether show build credit in about dialog")
if(WITH_BUILD_CREDIT)
set(BUILD_CREDIT "" CACHE STRING "Build credit shown in about dialog")
target_compile_definitions(Aegisub PRIVATE "BUILD_CREDIT=${BUILD_CREDIT}")
else()
unset(BUILD_CREDIT CACHE)
endif()
if(MSVC)
set_target_properties(libaegisub PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h")
else()
target_compile_options(libaegisub PRIVATE -include "${PROJECT_SOURCE_DIR}/libaegisub/lagi_pre.h")
endif()
if(MSVC)
add_definitions("/DNOMINMAX /MP /DINITGUID")
set_target_properties(Aegisub PROPERTIES COMPILE_FLAGS "/Yu${PROJECT_SOURCE_DIR}/src/agi_pre.h" COMPILE_FLAGS "/FI${PROJECT_SOURCE_DIR}/src/agi_pre.h")
target_link_libraries(Aegisub Usp10)
#target_sources(Aegisub PRIVATE src/res/res.rc src/res/strings.rc src/crash_writer_minidump.cpp)
target_sources(Aegisub PRIVATE src/res/res.rc src/res/strings.rc src/crash_writer.cpp src/dpi_aware.manifest)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Aegisub)
else()
target_sources(Aegisub PRIVATE src/crash_writer.cpp)
target_compile_options(Aegisub PRIVATE -include "${PROJECT_SOURCE_DIR}/src/agi_pre.h")
endif()
if(WIN32)
target_sources(Aegisub PRIVATE src/font_file_lister_gdi.cpp)
else()
find_package(Fontconfig REQUIRED)
target_include_directories(Aegisub PRIVATE ${Fontconfig_INCLUDE_DIRS})
target_link_libraries(Aegisub ${Fontconfig_LIBRARIES})
target_sources(Aegisub PRIVATE src/font_file_lister_fontconfig.cpp)
endif()
find_package(ass REQUIRED)
target_include_directories(Aegisub PRIVATE ${ass_INCLUDE_DIRS})
target_link_libraries(Aegisub ${ass_LIBRARIES})
find_package(Boost REQUIRED chrono filesystem locale regex system thread)
target_include_directories(libaegisub PRIVATE ${Boost_INCLUDE_DIRS})
target_include_directories(Aegisub PRIVATE ${Boost_INCLUDE_DIRS})
target_link_directories(Aegisub PRIVATE ${Boost_LIBRARY_DIRS})
target_link_libraries(Aegisub ${Boost_LIBRARIES})
find_package(OpenGL REQUIRED)
target_include_directories(Aegisub PRIVATE ${OPENGL_INCLUDE_DIR})
target_link_libraries(Aegisub ${OPENGL_LIBRARIES})
find_package(Iconv REQUIRED)
target_compile_definitions(libaegisub PRIVATE "HAVE_ICONV")
target_include_directories(libaegisub PRIVATE ${Iconv_INCLUDE_DIRS})
target_link_libraries(libaegisub ${Iconv_LIBRARIES})
if(NOT Iconv_IS_BUILT_IN)
target_compile_definitions(libaegisub PRIVATE "AGI_ICONV_CONST")
endif()
find_package(ICU REQUIRED uc dt in)
target_include_directories(libaegisub PRIVATE ${ICU_INCLUDE_DIRS})
target_include_directories(Aegisub PRIVATE ${ICU_INCLUDE_DIRS})
target_link_libraries(Aegisub ${ICU_LIBRARIES})
find_package(wxWidgets REQUIRED adv base core gl stc xml)
include(${wxWidgets_USE_FILE})
target_link_libraries(Aegisub ${wxWidgets_LIBRARIES})
find_package(ZLIB REQUIRED)
target_include_directories(Aegisub PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(Aegisub ${ZLIB_LIBRARIES})
set(WITH_ALSA ON CACHE BOOL "Enable ALSA support")
if(WITH_ALSA)
find_package(ALSA)
if(NOT ALSA_FOUND)
set(WITH_ALSA OFF CACHE BOOL "Enable ALSA support" FORCE)
endif()
endif()
if(WITH_ALSA)
target_compile_definitions(Aegisub PRIVATE "WITH_ALSA")
target_include_directories(Aegisub PRIVATE ${ALSA_INCLUDE_DIRS})
target_link_libraries(Aegisub ${ALSA_LIBRARIES})
target_sources(Aegisub PRIVATE src/audio_player_alsa.cpp)
endif()
set(WITH_AVISYNTH ON CACHE BOOL "Enable AviSynth support")
if(WITH_AVISYNTH)
find_package(AviSynth)
if(NOT AviSynth_FOUND)
set(WITH_AVISYNTH OFF CACHE BOOL "Enable AviSynth support" FORCE)
endif()
endif()
if(WITH_AVISYNTH)
target_compile_definitions(Aegisub PRIVATE "WITH_AVISYNTH")
target_include_directories(Aegisub PRIVATE ${AviSynth_INCLUDE_DIRS})
if(WIN32)
target_link_libraries(Aegisub Vfw32)
endif()
get_filename_component(Avisynth_LIBRARY_NAME "${AviSynth_SHARED_LIBRARY}" NAME CACHE)
target_compile_definitions(Aegisub PRIVATE "AVISYNTH_SO=\"${Avisynth_LIBRARY_NAME}\"")
target_sources(Aegisub PRIVATE src/audio_provider_avs.cpp src/avisynth_wrap.cpp src/video_provider_avs.cpp)
endif()
set(WITH_CSRI ON CACHE BOOL "Enable CSRI support")
if(WITH_CSRI)
target_compile_definitions(Aegisub PRIVATE "WITH_CSRI")
target_include_directories(Aegisub PRIVATE "${PROJECT_SOURCE_DIR}/vendor/csri/include")
target_sources(Aegisub PRIVATE src/subtitles_provider_csri.cpp)
endif()
if(WIN32)
target_compile_definitions(Aegisub PRIVATE "WITH_DIRECTSOUND")
target_link_libraries(Aegisub dsound)
target_sources(Aegisub PRIVATE src/audio_player_dsound.cpp src/audio_player_dsound2.cpp)
set(WITH_DIRECTSOUND ON)
set(WITH_XAUDIO2 ON CACHE BOOL "Enable XAudio2 support")
if(WITH_XAUDIO2)
target_compile_definitions(Aegisub PRIVATE "WITH_XAUDIO2")
target_sources(Aegisub PRIVATE src/audio_player_xaudio2.cpp)
endif()
else()
set(WITH_DIRECTSOUND OFF)
set(WITH_XAUDIO2 OFF)
endif()
set(WITH_FFMS2 ON CACHE BOOL "Enable FFMS2 support")
if(WITH_FFMS2)
find_package(FFMS2)
if(NOT FFMS2_FOUND)
set(WITH_FFMS2 OFF CACHE BOOL "Enable FFMS2 support" FORCE)
endif()
endif()
if(WITH_FFMS2)
target_compile_definitions(Aegisub PRIVATE "WITH_FFMS2")
target_include_directories(Aegisub PRIVATE ${FFMS2_INCLUDE_DIRS})
target_link_libraries(Aegisub ${FFMS2_LIBRARIES})
target_sources(Aegisub PRIVATE src/audio_provider_ffmpegsource.cpp src/ffmpegsource_common.cpp src/video_provider_ffmpegsource.cpp)
else()
message(SEND_ERROR
"No supported video/audio reader interface was enabled.\n"
"You will not be able to open any video or audio files in Aegisub unless you install a supported video/audio provider.\n"
"You will however still be able to open \"dummy\" video, ie. a blank, virtual video clip with subtitles overlaid.\n"
"Currently we only support one video/audio provider on non-Windows systems:\n"
" - FFMS2\n"
" * http://github.com/FFMS/ffms2\n"
)
endif()
set(WITH_FFTW3 ON CACHE BOOL "Enable fftw support")
if(WITH_FFTW3)
find_package(FFTW)
if(NOT FFTW_FOUND)
set(WITH_FFTW3 OFF CACHE BOOL "Enable fftw support" FORCE)
endif()
endif()
if(WITH_FFTW3)
target_compile_definitions(Aegisub PRIVATE "WITH_FFTW3")
target_include_directories(Aegisub PRIVATE ${FFTW_INCLUDES})
target_link_libraries(Aegisub ${FFTW_LIBRARIES})
endif()
set(WITH_HUNSPELL ON CACHE BOOL "Enable Hunspell support")
if(WITH_HUNSPELL)
find_package(Hunspell)
if(NOT HUNSPELL_FOUND)
set(WITH_HUNSPELL OFF CACHE BOOL "Enable Hunspell support" FORCE)
endif()
endif()
if(WITH_HUNSPELL)
target_compile_definitions(Aegisub PRIVATE "WITH_HUNSPELL")
target_include_directories(Aegisub PRIVATE ${HUNSPELL_INCLUDE_DIR})
target_link_libraries(Aegisub ${HUNSPELL_LIBRARIES})
target_sources(Aegisub PRIVATE src/spellchecker_hunspell.cpp)
if(HUNSPELL_HAS_STRING_API)
target_compile_definitions(Aegisub PRIVATE "HUNSPELL_HAS_STRING_API")
endif(HUNSPELL_HAS_STRING_API)
endif()
set(WITH_LIBPULSE ON CACHE BOOL "Enable PulseAudio support")
if(WITH_LIBPULSE)
find_package(PulseAudio)
if(NOT PULSEAUDIO_FOUND)
set(WITH_LIBPULSE OFF CACHE BOOL "Enable PulseAudio support" FORCE)
endif()
endif()
if(WITH_LIBPULSE)
target_compile_definitions(Aegisub PRIVATE "WITH_LIBPULSE")
target_include_directories(Aegisub PRIVATE ${PULSEAUDIO_INCLUDE_DIR})
target_link_libraries(Aegisub ${PULSEAUDIO_LIBRARY})
target_sources(Aegisub PRIVATE src/audio_player_pulse.cpp)
endif()
set(WITH_OPENAL ON CACHE BOOL "Enable OpenAL support")
if(WITH_OPENAL)
find_package(OpenAL)
if(NOT OPENAL_FOUND)
set(WITH_OPENAL OFF CACHE BOOL "Enable OpenAL support" FORCE)
endif()
endif()
if(WITH_OPENAL)
target_compile_definitions(Aegisub PRIVATE "WITH_OPENAL")
target_include_directories(Aegisub PRIVATE ${OPENAL_INCLUDE_DIR})
target_link_libraries(Aegisub ${OPENAL_LIBRARY})
target_sources(Aegisub PRIVATE src/audio_player_openal.cpp)
endif()
set(WITH_OSS OFF CACHE BOOL "Enable OSS support")
if(WITH_OSS)
find_package(OSS)
if(NOT OSS_FOUND)
set(WITH_OSS OFF CACHE BOOL "Enable OSS support" FORCE)
endif()
endif()
if(WITH_OSS)
target_compile_definitions(Aegisub PRIVATE "WITH_OSS")
target_include_directories(Aegisub PRIVATE ${OSS_INCLUDE_DIRS})
target_sources(Aegisub PRIVATE src/audio_player_oss.cpp)
endif()
set(WITH_PORTAUDIO ON CACHE BOOL "Enable PortAudio support")
if(WITH_PORTAUDIO)
find_package(PortAudio)
if(NOT PortAudio_FOUND)
set(WITH_PORTAUDIO OFF CACHE BOOL "Enable PortAudio support" FORCE)
endif()
endif()
if(WITH_PORTAUDIO)
target_compile_definitions(Aegisub PRIVATE "WITH_PORTAUDIO")
target_include_directories(Aegisub PRIVATE ${PortAudio_INCLUDE_DIRS})
target_link_libraries(Aegisub ${PortAudio_LIBRARIES})
target_sources(Aegisub PRIVATE src/audio_player_portaudio.cpp)
endif()
set(WITH_STARTUPLOG OFF CACHE BOOL "Enable startup log")
if(WITH_STARTUPLOG)
target_compile_definitions(Aegisub PRIVATE "WITH_STARTUPLOG")
endif()
set(WITH_UCHARDET ON CACHE BOOL "Enable uchardet support")
if(WITH_UCHARDET)
find_package(uchardet)
if(NOT uchardet_FOUND)
set(WITH_UCHARDET OFF CACHE BOOL "Enable uchardet support" FORCE)
endif()
endif()
if(WITH_UCHARDET)
target_compile_definitions(Aegisub PRIVATE "WITH_UCHARDET")
target_include_directories(Aegisub PRIVATE ${uchardet_INCLUDE_DIRS})
target_link_libraries(Aegisub ${uchardet_LIBRARIES})
endif()
set(WITH_UPDATE_CHECKER OFF)
if(WITH_UPDATE_CHECKER)
set(UPDATE_CHECKER_SERVER "\"updates.aegisub.org\"" CACHE STRING "Server for the update checker")
set(UPDATE_CHECKER_BASE_URL "\"/trunk\"" CACHE STRING "Base path for the update checker")
target_compile_definitions(Aegisub PRIVATE "WITH_UPDATE_CHECKER" "UPDATE_CHECKER_SERVER=${UPDATE_CHECKER_SERVER}" "UPDATE_CHECKER_BASE_URL=${UPDATE_CHECKER_BASE_URL}")
target_link_libraries(Aegisub ${Boost_asio_LIBRARY})
target_sources(Aegisub PRIVATE src/dialog_version_check.cpp)
endif()
if(WIN32)
set(DEFAULT_PLAYER_AUDIO DirectSound)
configure_file("src/libresrc/default_config_win.json" "${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json" COPYONLY)
else()
if(WITH_LIBPULSE)
set(DEFAULT_PLAYER_AUDIO "PulseAudio" CACHE STRING "Default audio player")
elseif(WITH_ALSA)
set(DEFAULT_PLAYER_AUDIO "ALSA" CACHE STRING "Default audio player")
elseif(WITH_OPENAL)
set(DEFAULT_PLAYER_AUDIO "OpenAL" CACHE STRING "Default audio player")
elseif(WITH_PORTAUDIO)
set(DEFAULT_PLAYER_AUDIO "PortAudio" CACHE STRING "Default audio player")
elseif(WITH_OSS)
set(DEFAULT_PLAYER_AUDIO "OSS" CACHE STRING "Default audio player")
else()
message(SEND_ERROR
"No supported audio player interface was enabled.\n"
"If you want audio support in Aegisub you need to install one of these libraries:\n"
" - PulseAudio\n"
" * http://pulseaudio.org/\n"
" - ALSA (Linux only)\n"
" * http://www.alsa-project.org/\n"
" - PortAudio (version 19 only)\n"
" * http://www.portaudio.com/\n"
"\n"
)
set(DEFAULT_PLAYER_AUDIO "NONE" CACHE STRING "Default audio player")
endif()
add_custom_command(
OUTPUT ${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/src/libresrc/default_config_win.json ${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json
)
configure_file("src/libresrc/default_config_platform.json.in" "${PROJECT_SOURCE_DIR}/src/libresrc/default_config_platform.json" @ONLY)
endif()
if(NOT WIN32)
set(AEGISUB_COMMAND "aegisub" CACHE STRING "The executable name of Aegisub")
set_target_properties(Aegisub PROPERTIES OUTPUT_NAME "${AEGISUB_COMMAND}")
configure_file("packages/desktop/aegisub.desktop.template.in" "aegisub.desktop" @ONLY)
install(FILES "${CMAKE_BINARY_DIR}/aegisub.desktop" DESTINATION "share/applications")
install(FILES "packages/desktop/16x16.png" DESTINATION "share/icons/hicolor/16x16/apps" RENAME aegisub.png)
install(FILES "packages/desktop/22x22.png" DESTINATION "share/icons/hicolor/22x22/apps" RENAME aegisub.png)
install(FILES "packages/desktop/24x24.png" DESTINATION "share/icons/hicolor/24x24/apps" RENAME aegisub.png)
install(FILES "packages/desktop/32x32.png" DESTINATION "share/icons/hicolor/32x32/apps" RENAME aegisub.png)
install(FILES "packages/desktop/48x48.png" DESTINATION "share/icons/hicolor/48x48/apps" RENAME aegisub.png)
install(FILES "packages/desktop/64x64.png" DESTINATION "share/icons/hicolor/64x64/apps" RENAME aegisub.png)
install(FILES "packages/desktop/scalable.svg" DESTINATION "share/icons/hicolor/scalable/apps" RENAME aegisub.svg)
endif()
install(TARGETS Aegisub DESTINATION bin)
set(WITH_TEST OFF CACHE BOOL "Enable unit tests")
if(WITH_TEST)
include("CMakeLists.test.txt")
endif()
message(STATUS "\n"
"Configure settings\n"
" Install prefix: ${CMAKE_INSTALL_PREFIX}\n"
" CFLAGS ${CMAKE_C_FLAGS}\n"
" CXXFLAGS ${CMAKE_CXX_FLAGS}\n"
"\n"
"Default Settings\n"
" Audio Player: ${DEFAULT_PLAYER_AUDIO}\n"
"\n"
"Audio Players\n"
" ALSA: ${WITH_ALSA}\n"
" DirectSound: ${WITH_DIRECTSOUND}\n"
" DirectSound-old: ${WITH_DIRECTSOUND}\n"
" XAudio2: ${WITH_XAUDIO2}\n"
" OpenAL: ${WITH_OPENAL}\n"
" OSS: ${WITH_OSS}\n"
" PortAudio: ${WITH_PORTAUDIO}\n"
" PulseAudio: ${WITH_LIBPULSE}\n"
"\n"
"Misc Packages\n"
" AviSynth: ${WITH_AVISYNTH}\n"
" CSRI: ${WITH_CSRI}\n"
" FFMS2: ${WITH_FFMS2}\n"
" FFTW3: ${WITH_FFTW3}\n"
" Hunspell: ${WITH_HUNSPELL}\n"
" uchardet: ${WITH_UCHARDET}\n"
" LuaJIT: bundled\n"
"\n"
"Options\n"
" Startup log: ${WITH_STARTUPLOG}\n"
" Update checker: ${WITH_UPDATE_CHECKER}\n"
" Tests: ${WITH_TEST}\n"
"\n"
)

12
Makefile Normal file
View File

@ -0,0 +1,12 @@
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

136
Makefile.inc.in Normal file
View File

@ -0,0 +1,136 @@
#########################
# 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_APPDATA = @P_APPDATA@
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@
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@

121
Makefile.target Normal file
View File

@ -0,0 +1,121 @@
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.10 -gfull -DLUAJIT_ENABLE_GC64
CXXFLAGS += -mmacosx-version-min=10.10 -gfull -DLUAJIT_ENABLE_GC64
LDFLAGS += -mmacosx-version-min=10.10 -Wl,-dead_strip
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: $$($$(*F)_OBJ)
@$(BIN_MKDIR_P) $(dir $@)
$(BIN_AR) cru $@ $(filter %.o,$^)
$(BIN_RANLIB) $@
-include $(DEP)
endif

208
README.md
View File

@ -1,173 +1,73 @@
## arch1t3cht's Aegisub "fork"
Go [here](#branchfeature-list) for the new features.
### 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`.
#### I get errors like "Option not found" after merging one of these branches
The changes to `default_config.json` or similar files weren't detected by meson due to missing regen dependencies. You can either merge the `bugfixes` branch or rebuild from scratch.
#### 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
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 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
[![Build Status](https://travis-ci.org/wangqr/Aegisub.svg?branch=dev)](https://travis-ci.org/wangqr/Aegisub)
# Aegisub
For binaries and general information [see the homepage](http://www.aegisub.org).
The bug tracker can be found at https://github.com/Aegisub/Aegisub/issues.
The bug tracker can be found at https://github.com/Aegisub/Aegisub/issues .
Support is available on [Discord](https://discord.com/invite/AZaVyPr) or [IRC](irc://irc.rizon.net/aegisub).
Support is available on IRC ( irc://irc.rizon.net/aegisub ).
## Building Aegisub
### Windows
### autoconf / make (for linux and macOS)
Prerequisites:
This is the recommended way of building Aegisub on linux and macOS. Currently AviSynth+ support is not included in autoconf project. If you need AviSynth+ support, see CMake instructions below.
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. Python 3
4. Meson
5. CMake
6. Powershell execution policy set to Unrestricted
Aegisub has some required dependencies:
* `libass`
* `Boost`(with ICU support)
* `OpenGL`
* `libicu`
* `wxWidgets`
* `zlib`
* `fontconfig` (not needed on Windows)
* `luajit` (or `lua`)
There are a few optional dependencies that must be installed and on your PATH:
and optional dependencies:
* `ALSA`
* `FFMS2`
* `FFTW`
* `Hunspell`
* `OpenAL`
* `uchardet`
* `AviSynth+`
1. msgfmt, to build the translations
2. InnoSetup, to build the regular installer
3. 7zip, to build the regular installer
4. Moonscript, to build the regular installer
You can use the package manager provided by your distro to install these dependencies. Package name varies by distro. Some useful references are:
All other dependencies are either stored in the repository or are included as submodules.
* For ArchLinux, refer to [AUR](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=aegisub-git).
* For Ubuntu, refer to [Travis](.travis.yml#L14-L35).
* For macOS, refer to [Travis](.travis.yml#L38-L51). In addition to the packages listed in the `brew install` line, you also need `automake` and `pkg-config`. They are not listed there because Travis preinstalled them. For some packages, you need to either [set environment variables during build](.travis.yml#L71-L75) or [force link them](https://github.com/Aegisub/Aegisub/#os-x).
Building:
1. Clone Aegisub's repository: `git clone https://github.com/TypesettingTools/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 binary: `aegisub.exe`.
Installer:
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.
For personal usage, you can use pip and homebrew to install almost all of Aegisub's dependencies:
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"
Once the dependencies are installed, build Aegisub with `meson build && meson compile -C build`.
#### Build dmg
```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
After installing the dependencies, you can clone and build Aegisub with:
```sh
git clone https://github.com/wangqr/Aegisub.git
cd Aegisub
./autogen.sh
./configure
make
```
### CMake (for Windows and linux)
This fork also provides CMake build. The CMake project will only build Aegisub itself, without the translation.
You still need to install the dependencies above. To enable AviSynth+ support, it is also needed. On ArchLinux this can be done by installing [avisynthplus-git](https://aur.archlinux.org/packages/avisynthplus-git). Installing dependencies on Windows can be tricky, as Windows doesn't have a good package manager. Refer to [the Wiki page](https://github.com/wangqr/Aegisub/wiki/Compile-guide-for-Windows-(CMake,-MSVC)) on how to get all dependencies on Windows.
After installing the dependencies, you can clone and build Aegisub with:
```sh
git clone https://github.com/wangqr/Aegisub.git
cd Aegisub
./build/version.sh . # This will generate build/git_version.h
mkdir build-dir
cd build-dir
cmake .. # Or use cmake-gui / ccmake
make
```
Features can be turned on/off in CMake by toggling the `WITH_*` switches.
## Updating Moonscript
From within the Moonscript repository, run `bin/moon bin/splat.moon -l moonscript moonscript/ > bin/moonscript.lua`.
@ -182,4 +82,4 @@ The file is now ready for use, to be placed in `automation/include` within the A
## License
All files in this repository are licensed under various GPL-compatible BSD-style licenses; see LICENCE and the individual source files for more information.
The official Windows and OS X builds are GPLv2 due to including fftw3.
The official Windows build is GPLv2 due to including fftw3.

15
acinclude.m4 Normal file
View File

@ -0,0 +1,15 @@
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])

7
autogen.sh Executable file
View File

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

28
automation/Makefile Normal file
View File

@ -0,0 +1,28 @@
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

@ -1,14 +0,0 @@
# 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

@ -1,20 +0,0 @@
# 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

@ -1,133 +0,0 @@
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 .. ": " .. 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

View File

@ -1,47 +0,0 @@
subdir('include')
automation_dir = dataroot / 'automation'
install_data(
'autoload/cleantags-autoload.lua',
'autoload/karaoke-auto-leadin.lua',
'autoload/kara-templater.lua',
'autoload/macro-1-edgeblur.lua',
'autoload/macro-2-mkfullwitdh.lua',
'autoload/select-overlaps.moon',
'autoload/strip-tags.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

@ -53,7 +53,7 @@ int main(int argc, char **argv) {
agi::log::log = new agi::log::LogSink;
// Init lua state
lua_State *L = lua_open();
lua_State *L = luaL_newstate();
if (!L) {
fprintf(stderr, "Failed to create Lua state\n");
return 1;

View File

@ -1,69 +0,0 @@
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:frame:getPixel(x, y)
@x (number)
Pixel to retrieve on the x-axis
@y (number)
Pixel to retrieve on the y-axis
Returns: number
Integer value representing the RGB pixel value.
---
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&"
---

View File

@ -1,66 +0,0 @@
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

@ -1,260 +0,0 @@
"""
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.
This module provides some utility functions to obtain timecodes, keyframes, and
other data.
"""
import os
import os.path
import re
from collections import deque
from typing import Any, Dict, List, Tuple
import vapoursynth as vs
core = vs.core
aegi_vscache: str = ""
aegi_vsplugins: str = ""
plugin_extension = ".dll" if os.name == "nt" else ".so"
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]+)")
class LWIndexFrame:
pts: int
key: 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.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()
indexstart, indexend = index.index("</StreamInfo>") + 1, index.index("</LibavReaderIndex>")
frames = [LWIndexFrame(index[i:i+2]) for i in range(indexstart, indexend, 2)]
frames.sort(key=int)
streaminfo = streaminfo_re.match(index[indexstart - 2])
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
try:
os.mkdir(cachedir)
except FileExistsError:
pass
cachefile = os.path.join(cachedir, make_lwi_cache_filename(filename))
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)
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.
Will be slightly more efficient with the `akarin` plugin installed.
: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.
"""
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 // 25) == 0:
vs.core.log_message(vs.MESSAGE_TYPE_INFORMATION, "Detecting keyframes... {}% done.\n".format(100 * done // clip.num_frames))
return f
deque(clip.std.ModifyFrame(clip, _cb).frames(close=True), 0)
vs.core.log_message(vs.MESSAGE_TYPE_INFORMATION, "Done detecting keyframes.\n")
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))
def try_get_keyframes(filename: str, default: str | List[int]) -> str | List[int]:
"""
Checks if a keyframes file for the given filename is present and, if so,
returns it. Otherwise, returns the given list of keyframes.
"""
kffilename = make_keyframes_filename(filename)
return kffilename if os.path.exists(kffilename) else default
def get_keyframes(filename: str, clip: vs.VideoNode, **kwargs: Any) -> str:
"""
When not already present, creates a keyframe file for the given clip next
to the given filename using WWXD or Scxvid (see the make_keyframes docstring).
Additional keyword arguments are passed on to make_keyframes.
"""
kffilename = make_keyframes_filename(filename)
if not os.path.exists(kffilename):
vs.core.log_message(vs.MESSAGE_TYPE_INFORMATION, "No keyframes file found, detecting keyframes...\n")
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
BestAudioSource. Requires the `bas` plugin to return correct results, but
won't crash if it's not installed.
Additional keyword arguments are passed on to BestAudioSource.
"""
try:
ensure_plugin("bas", "BestAudioSource", "")
vs.core.bas.Source(source=filename, **kwargs)
return True
except AttributeError:
pass
except vs.Error:
pass
return False

View File

@ -0,0 +1,163 @@
<?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

@ -0,0 +1,443 @@
<?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>
<Manifest>
<EnableDpiAwareness>PerMonitorHighDPIAware</EnableDpiAwareness>
</Manifest>
</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

254
build/Aegisub/Aegisub.xml Normal file
View File

@ -0,0 +1,254 @@
<?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

@ -0,0 +1,32 @@
<?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

@ -0,0 +1,81 @@
<?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

@ -0,0 +1,54 @@
// 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

@ -0,0 +1,117 @@
// 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

@ -0,0 +1,36 @@
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

@ -0,0 +1,96 @@
// 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

@ -0,0 +1,5 @@
<?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

@ -0,0 +1,65 @@
<?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

@ -0,0 +1,147 @@
<?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

@ -0,0 +1,127 @@
<?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>

66
build/aegisub.props Normal file
View File

@ -0,0 +1,66 @@
<?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>

139
build/boost/boost.vcxproj Normal file
View File

@ -0,0 +1,139 @@
<?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

@ -0,0 +1,222 @@
<?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

@ -0,0 +1,69 @@
// 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

@ -0,0 +1,51 @@
<?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

@ -0,0 +1,63 @@
<?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>

55
build/expat/expat.vcxproj Normal file
View File

@ -0,0 +1,55 @@
<?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

@ -0,0 +1,17 @@
<?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>

2460
build/ffmpeg/config-x64.asm Executable file

File diff suppressed because it is too large Load Diff

2476
build/ffmpeg/config-x64.h Executable file

File diff suppressed because it is too large Load Diff

2460
build/ffmpeg/config-x86.asm Executable file

File diff suppressed because it is too large Load Diff

2476
build/ffmpeg/config-x86.h Executable file

File diff suppressed because it is too large Load Diff

5
build/ffmpeg/config.h Normal file
View File

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

44
build/ffmpeg/configure.sh Executable file
View File

@ -0,0 +1,44 @@
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.h ../../build/ffmpeg/config-$suffix.h
mv config.asm ../../build/ffmpeg/config-$suffix.asm

1415
build/ffmpeg/ffmpeg.vcxproj Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

13
build/ffmpeg/get-file-list.sh Executable file
View File

@ -0,0 +1,13 @@
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

@ -0,0 +1,7 @@
/* Generated by ffconf */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0
#define AV_HAVE_FAST_UNALIGNED 1
#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0
#endif /* AVUTIL_AVCONFIG_H */

View File

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

96
build/ffms2/ffms2.vcxproj Normal file
View File

@ -0,0 +1,96 @@
<?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

@ -0,0 +1,126 @@
<?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>

393
build/fftw/config.h Executable file
View File

@ -0,0 +1,393 @@
/* 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

677
build/fftw/fftw.vcxproj Normal file
View File

@ -0,0 +1,677 @@
<?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

@ -0,0 +1,86 @@
<?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

@ -0,0 +1,152 @@
<?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

@ -0,0 +1,75 @@
// 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

@ -0,0 +1,22 @@
#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

@ -0,0 +1,64 @@
<?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

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

View File

@ -0,0 +1,62 @@
<?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

@ -0,0 +1,97 @@
<?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

@ -0,0 +1,56 @@
<?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

@ -0,0 +1,92 @@
<?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>

703
build/icu/icu.vcxproj Normal file
View File

@ -0,0 +1,703 @@
<?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

47
build/icu/pack-dt.lua Normal file
View File

@ -0,0 +1,47 @@
-- 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')

42
build/install.targets Normal file
View File

@ -0,0 +1,42 @@
<?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

@ -0,0 +1,188 @@
<?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

@ -0,0 +1,388 @@
<?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>

6
build/libass/config.h Normal file
View File

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

6
build/libass/dirent.h Normal file
View File

@ -0,0 +1,6 @@
// 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) { }

111
build/libass/libass.vcxproj Normal file
View File

@ -0,0 +1,111 @@
<?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);
$(AegisubSourceBase)\include\fribidi;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
inline=__inline;
FRIBIDI_ENTRY=;
%(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</Config>
<Config Condition="'$(Platform)'=='x64'">%(Config) -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=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\rasterizer.asm" />
<None 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_drawing.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_font.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_library.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_parse.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_render.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_shaper.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_types.h" />
<ClInclude Include="$(LibassSrcDir)\libass\ass_utils.h" />
<ClInclude Include="$(LibassSrcDir)\libass\x86\be_blur.h" />
<ClInclude Include="$(LibassSrcDir)\libass\x86\blend_bitmaps.h" />
<ClInclude Include="$(LibassSrcDir)\libass\x86\cpuid.h" />
<ClInclude Include="$(LibassSrcDir)\libass\x86\rasterizer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)config.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)strings.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)unistd.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_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_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

@ -0,0 +1,156 @@
<?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>
<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>
<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>
<Yasm Include="$(LibassSrcDir)\libass\x86\rasterizer.asm">
<Filter>Assembly Files</Filter>
</Yasm>
<ClInclude Include="$(LibassSrcDir)\libass\x86\be_blur.h">
<Filter>Assembly Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\x86\blend_bitmaps.h">
<Filter>Assembly Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\x86\cpuid.h">
<Filter>Assembly Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\x86\rasterizer.h">
<Filter>Assembly Files</Filter>
</ClInclude>
<None Include="$(LibassSrcDir)\libass\x86\x86inc.asm">
<Filter>Assembly Files</Filter>
</None>
</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_drawing.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_font.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_library.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_parse.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_types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(LibassSrcDir)\libass\ass_utils.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>
<ClInclude Include="$(MSBuildThisFileDirectory)unistd.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_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_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>

3
build/libass/strings.h Normal file
View File

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

0
build/libass/unistd.h Normal file
View File

View File

@ -0,0 +1,44 @@
<?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>{965054D2-44F2-4EB2-9879-051CC3D7EF08}</ProjectGuid>
<RootNamespace>libiconv</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\iconv\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SrcDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(SrcDir)include</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(SrcDir)\include\iconv.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)include\iconv.h" />
<ClInclude Include="$(SrcDir)include\libcharset.h" />
<ClInclude Include="$(SrcDir)include\localcharset.h" />
<ClInclude Include="$(SrcDir)libcharset\config.h" />
<ClInclude Include="$(SrcDir)libiconv\config.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)libcharset\localcharset.c" />
<ClCompile Include="$(SrcDir)libiconv\iconv.c" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,42 @@
<?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\iconv.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\libcharset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)include\localcharset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)libcharset\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)libiconv\config.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)libcharset\localcharset.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)libiconv\iconv.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -0,0 +1,64 @@
<?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>{5CABCBEF-E79A-4D27-94A5-CF4EAAF1DD96}</ProjectGuid>
<RootNamespace>libpng</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\wxWidgets\src\png\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\zlib\zlib.vcxproj">
<Project>{10f22a5a-dd9e-44a1-ba2e-2a9a7c78b0ee}</Project>
</ProjectReference>
</ItemGroup>
<ItemDefinitionGroup>
<InstallHeader>
<HeaderRoot>$(SrcDir)</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- Source files -->
<ItemGroup>
<InstallHeader Include="$(SrcDir)\png.h" />
<InstallHeader Include="$(SrcDir)\pngconf.h" />
<InstallHeader Include="$(SrcDir)\pnglibconf.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)\png.h" />
<ClInclude Include="$(SrcDir)\pngconf.h" />
<ClInclude Include="$(SrcDir)\pngdebug.h" />
<ClInclude Include="$(SrcDir)\pnginfo.h" />
<ClInclude Include="$(SrcDir)\pnglibconf.h" />
<ClInclude Include="$(SrcDir)\pngprefix.h" />
<ClInclude Include="$(SrcDir)\pngpriv.h" />
<ClInclude Include="$(SrcDir)\pngstruct.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)\png.c" />
<ClCompile Include="$(SrcDir)\pngerror.c" />
<ClCompile Include="$(SrcDir)\pngget.c" />
<ClCompile Include="$(SrcDir)\pngmem.c" />
<ClCompile Include="$(SrcDir)\pngpread.c" />
<ClCompile Include="$(SrcDir)\pngread.c" />
<ClCompile Include="$(SrcDir)\pngrio.c" />
<ClCompile Include="$(SrcDir)\pngrtran.c" />
<ClCompile Include="$(SrcDir)\pngrutil.c" />
<ClCompile Include="$(SrcDir)\pngset.c" />
<ClCompile Include="$(SrcDir)\pngtest.c" />
<ClCompile Include="$(SrcDir)\pngtrans.c" />
<ClCompile Include="$(SrcDir)\pngwio.c" />
<ClCompile Include="$(SrcDir)\pngwrite.c" />
<ClCompile Include="$(SrcDir)\pngwtran.c" />
<ClCompile Include="$(SrcDir)\pngwutil.c" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,17 @@
<?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>

View File

@ -0,0 +1,75 @@
<?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>{BD00D65F-24DA-4784-8860-3B972EA125FC}</ProjectGuid>
<RootNamespace>libresrc</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>$(MSBuildThisFileDirectory)..\..\src\libresrc\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ImportGroup Label="ExtensionTargets">
<Import Project="$(MSBuildThisFileDirectory)..\respack.targets" />
</ImportGroup>
<Target Name="DefaultConfig" BeforeTargets="ResPackGenerate">
<Copy
SourceFiles="$(SrcDir)default_config_win.json"
DestinationFiles="$(SrcDir)default_config_platform.json"
SkipUnchangedFiles="true"
/>
</Target>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\wx\wxWidgets.vcxproj">
<Project>{0518d6c0-7bf6-4fd1-91fb-191bd10db2ac}</Project>
</ProjectReference>
<ProjectReference Include="..\luajit-minilua\luajit-minilua.vcxproj">
<Project>{fcaed410-90ef-4ef9-916c-4b86dc13a3cf}</Project>
</ProjectReference>
<ProjectReference Include="..\libpng\libpng.vcxproj">
<Project>{5cabcbef-e79a-4d27-94a5-cf4eaaf1dd96}</Project>
</ProjectReference>
</ItemGroup>
<!-- Source files -->
<ItemGroup>
<ResPack Include="$(SrcDir)manifest.respack">
<OutputName>default_config</OutputName>
<OutputDir>$(SrcDir)</OutputDir>
</ResPack>
<ResPack Include="$(SrcDir)..\bitmaps\manifest.respack">
<OutputName>bitmap</OutputName>
<OutputDir>$(SrcDir)</OutputDir>
</ResPack>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)libresrc.cpp" />
<ClCompile Include="$(SrcDir)bitmap.cpp" />
<ClCompile Include="$(SrcDir)default_config.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)libresrc.h" />
<ClInclude Include="$(SrcDir)bitmap.h" />
<ClInclude Include="$(SrcDir)default_config.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)manifest.respack" />
<None Include="$(SrcDir)..\bitmaps\manifest.respack" />
<None Include="$(SrcDir)..\..\tools\respack.lua" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,50 @@
<?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>
<ClCompile Include="$(SrcDir)libresrc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)bitmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)default_config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)libresrc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)bitmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)default_config.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)..\..\tools\respack.lua">
<Filter>Resource Files</Filter>
</None>
<None Include="$(SrcDir)manifest.respack">
<Filter>Resource Files</Filter>
</None>
<None Include="$(SrcDir)..\bitmaps\manifest.respack">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,51 @@
<?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>{A7A30702-8162-4E1A-A010-EF51B590C121}</ProjectGuid>
<RootNamespace>luabins</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\luabins\src\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SrcDir)..\..\lua51\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<!-- Project References -->
<ItemGroup>
<ProjectReference Include="..\luajit\luajit.vcxproj">
<Project>{5391a8b1-9c70-4dc4-92ad-d3e34c6b803f}</Project>
</ProjectReference>
</ItemGroup>
<!-- Source files -->
<ItemGroup>
<ClCompile Include="$(SrcDir)fwrite.c" />
<ClCompile Include="$(SrcDir)load.c" />
<ClCompile Include="$(SrcDir)luabins.c" />
<ClCompile Include="$(SrcDir)luainternals.c" />
<ClCompile Include="$(SrcDir)save.c" />
<ClCompile Include="$(SrcDir)savebuffer.c" />
<ClCompile Include="$(SrcDir)write.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)fwrite.h" />
<ClInclude Include="$(SrcDir)luabins.h" />
<ClInclude Include="$(SrcDir)luaheaders.h" />
<ClInclude Include="$(SrcDir)luainternals.h" />
<ClInclude Include="$(SrcDir)savebuffer.h" />
<ClInclude Include="$(SrcDir)saveload.h" />
<ClInclude Include="$(SrcDir)write.h" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Headers">
<UniqueIdentifier>{0A33FF05-970D-49a7-B722-73E8EA350084}</UniqueIdentifier>
</Filter>
<Filter Include="Source">
<UniqueIdentifier>{2C50401A-5AC6-4630-B633-DFCC190306A8}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)fwrite.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)load.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)luabins.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)luainternals.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)save.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)savebuffer.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="$(SrcDir)write.c">
<Filter>Source</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)fwrite.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)luabins.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)luaheaders.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)luainternals.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)savebuffer.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)saveload.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)write.h">
<Filter>Headers</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -0,0 +1,79 @@
<?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>{7CA6A4EB-A11B-4975-8F3A-F633111C6213}</ProjectGuid>
<RootNamespace>luajitbuildvm</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>exe</AegisubProjectType>
<SrcDir>..\..\vendor\luajit\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<PropertyGroup>
<OutDir>$(ProjectDir)</OutDir>
<TargetName>luajit-buildvm$(AegisubPlatformSuffix)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
_CRT_SECURE_NO_WARNINGS;
LUAJIT_ENABLE_LUA52COMPAT;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
$(AegisubObjectDir);
$(SrcDir)dynasm;
$(SrcDir)src;
$(SrcDir)src/host;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AegisubLibraryDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<!-- Build buildvm_arch.h -->
<PropertyGroup>
<MiniLuaCommand>$(AegisubBinaryDir)luajit-minilua$(AegisubPlatformSuffix)</MiniLuaCommand>
<MiniLuaPlat Condition="'$(Platform)'=='x64'">-D P64</MiniLuaPlat>
</PropertyGroup>
<Target
Name="MiniLua"
BeforeTargets="ClCompile"
DependsOnTargets="PrepareForBuild"
Inputs="$(SrcDir)dynasm\dynasm.lua"
Outputs="$(AegisubObjectDir)buildvm_arch.h"
>
<Exec
Command="$(MiniLuaCommand) ..\dynasm\dynasm.lua -LN -D WIN -D JIT -D FFI $(MiniLuaPlat) -o $(AegisubObjectDir)buildvm_arch.h vm_x86.dasc"
WorkingDirectory="$(SrcDir)src"
/>
</Target>
<!-- Source files -->
<ItemGroup>
<ClCompile Include="$(SrcDir)src\host\buildvm.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_asm.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_fold.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_lib.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_peobj.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)src\host\buildvm.h" />
<ClInclude Include="$(AegisubObjectDir)buildvm_arch.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\luajit-minilua\luajit-minilua.vcxproj">
<Project>{fcaed410-90ef-4ef9-916c-4b86dc13a3cf}</Project>
</ProjectReference>
</ItemGroup>
</Project>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="$(SrcDir)src\host\buildvm.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_asm.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_fold.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_lib.c" />
<ClCompile Include="$(SrcDir)src\host\buildvm_peobj.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)src\host\buildvm.h" />
<ClInclude Include="$(SrcDir)src\host\buildvm_arch.h" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,35 @@
<?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>{FCAED410-90EF-4EF9-916C-4B86DC13A3CF}</ProjectGuid>
<RootNamespace>luajitminilua</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>exe</AegisubProjectType>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<PropertyGroup>
<OutDir>$(ProjectDir)</OutDir>
<TargetName>luajit-minilua$(AegisubPlatformSuffix)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AegisubLibraryDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<!-- Source file -->
<ItemGroup>
<ClCompile Include="..\..\vendor\luajit\src\host\minilua.c" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\vendor\luajit\src\host\minilua.c" />
</ItemGroup>
</Project>

234
build/luajit/luajit.vcxproj Normal file
View File

@ -0,0 +1,234 @@
<?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>{5391A8B1-9C70-4DC4-92AD-D3E34C6B803F}</ProjectGuid>
<RootNamespace>luajit</RootNamespace>
</PropertyGroup>
<!-- Aegisub project configuration -->
<PropertyGroup Label="AegisubConfiguration">
<AegisubProjectType>lib</AegisubProjectType>
<SrcDir>..\..\vendor\luajit\</SrcDir>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<!-- Project specific configuration -->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>
_CRT_SECURE_NO_WARNINGS;
LUAJIT_ENABLE_LUA52COMPAT;
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(AegisubObjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<InstallHeader>
<HeaderRoot>$(SrcDir)include</HeaderRoot>
</InstallHeader>
</ItemDefinitionGroup>
<!-- BuildVM stuff -->
<PropertyGroup>
<BuildVMCommand>$(AegisubBinaryDir)luajit-buildvm$(AegisubPlatformSuffix)</BuildVMCommand>
<BuildCompileTargets>
BuildVM;
ComputeLibDefNames;
BuildLibDefs;
$(BuildCompileTargets)
</BuildCompileTargets>
</PropertyGroup>
<Target
Name="BuildVM"
Inputs="$(SrcDir)src\host\buildvm.c;$(SrcDir)src\lj_opt_fold.c"
Outputs="$(AegisubObjectDir)lj_vm.obj;$(AegisubObjectDir)lj_folddef.h"
>
<Message Text="luajit-buildvm peobj" Importance="High" />
<Exec Command="$(BuildVMCommand) -m peobj -o lj_vm.obj" WorkingDirectory="$(AegisubObjectDir)" />
<Message Text="luajit-buildvm folddef" Importance="High" />
<Exec Command="$(BuildVMCommand) -m folddef -o $(AegisubObjectDir)lj_folddef.h lj_opt_fold.c" WorkingDirectory="$(SrcDir)src" />
<ItemGroup>
<Lib Include="$(AegisubObjectDir)lj_vm.obj" />
</ItemGroup>
</Target>
<Target Name="ComputeLibDefNames">
<!-- To avoid having any top-level itemgroups not naming real files -->
<ItemGroup>
<LuajitLibDefname Include="bcdef;ffdef;libdef;recdef" />
</ItemGroup>
</Target>
<Target
Name="BuildLibDefs"
Inputs="@(LuajitLibSource)"
Outputs="@(LuajitLibDefname -> '$(AegisubObjectDir)lj_%(Identity).h')"
>
<Message Text="luajit-buildvm %(LuajitLibDefname.Identity)" Importance="High" Condition="'%(LuajitLibDefname.Identity)' != ''" />
<Exec
Command="$(BuildVMCommand) -m %(LuajitLibDefname.Identity) -o $(AegisubObjectDir)lj_%(LuajitLibDefname.Identity).h @(LuajitLibSource->'%(filename)%(extension)',' ')"
WorkingDirectory="$(SrcDir)src\"
Condition="'%(LuajitLibDefname.Identity)' != ''"
/>
</Target>
<!-- Source files -->
<ItemGroup>
<LuajitLibSource Include="$(SrcDir)src\lib_base.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_math.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_bit.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_string.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_table.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_io.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_os.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_package.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_debug.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_jit.c" />
<LuajitLibSource Include="$(SrcDir)src\lib_ffi.c" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)src\ljamalg.c" />
</ItemGroup>
<ItemGroup>
<LuajitVMSource Include="$(SrcDir)src\lj_alloc.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_api.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_asm.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_bc.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_bcread.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_bcwrite.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_carith.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_ccall.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_ccallback.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_cconv.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_cdata.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_char.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_clib.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_cparse.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_crecord.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_ctype.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_debug.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_dispatch.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_err.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_ffrecord.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_func.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_gc.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_gdbjit.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_ir.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_lex.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_lib.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_load.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_mcode.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_meta.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_obj.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_dce.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_fold.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_loop.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_mem.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_narrow.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_sink.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_opt_split.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_parse.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_record.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_snap.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_state.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_str.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_strscan.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_tab.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_trace.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_udata.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_vmevent.c" />
<LuajitVMSource Include="$(SrcDir)src\lj_vmmath.c" />
</ItemGroup>
<ItemGroup>
<InstallHeader Include="$(SrcDir)include\lauxlib.h" />
<InstallHeader Include="$(SrcDir)include\lua.h" />
<InstallHeader Include="$(SrcDir)include\lua.hpp" />
<InstallHeader Include="$(SrcDir)include\luaconf.h" />
<InstallHeader Include="$(SrcDir)include\luajit.h" />
<InstallHeader Include="$(SrcDir)include\lualib.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)src\lj_alloc.h" />
<ClInclude Include="$(SrcDir)src\lj_arch.h" />
<ClInclude Include="$(SrcDir)src\lj_asm.h" />
<ClInclude Include="$(SrcDir)src\lj_asm_arm.h" />
<ClInclude Include="$(SrcDir)src\lj_asm_mips.h" />
<ClInclude Include="$(SrcDir)src\lj_asm_ppc.h" />
<ClInclude Include="$(SrcDir)src\lj_asm_x86.h" />
<ClInclude Include="$(SrcDir)src\lj_bc.h" />
<ClInclude Include="$(SrcDir)src\lj_bcdump.h" />
<ClInclude Include="$(SrcDir)src\lj_carith.h" />
<ClInclude Include="$(SrcDir)src\lj_ccall.h" />
<ClInclude Include="$(SrcDir)src\lj_ccallback.h" />
<ClInclude Include="$(SrcDir)src\lj_cconv.h" />
<ClInclude Include="$(SrcDir)src\lj_cdata.h" />
<ClInclude Include="$(SrcDir)src\lj_char.h" />
<ClInclude Include="$(SrcDir)src\lj_clib.h" />
<ClInclude Include="$(SrcDir)src\lj_cparse.h" />
<ClInclude Include="$(SrcDir)src\lj_crecord.h" />
<ClInclude Include="$(SrcDir)src\lj_ctype.h" />
<ClInclude Include="$(SrcDir)src\lj_debug.h" />
<ClInclude Include="$(SrcDir)src\lj_def.h" />
<ClInclude Include="$(SrcDir)src\lj_dispatch.h" />
<ClInclude Include="$(SrcDir)src\lj_emit_arm.h" />
<ClInclude Include="$(SrcDir)src\lj_emit_mips.h" />
<ClInclude Include="$(SrcDir)src\lj_emit_ppc.h" />
<ClInclude Include="$(SrcDir)src\lj_emit_x86.h" />
<ClInclude Include="$(SrcDir)src\lj_err.h" />
<ClInclude Include="$(SrcDir)src\lj_errmsg.h" />
<ClInclude Include="$(SrcDir)src\lj_ff.h" />
<ClInclude Include="$(SrcDir)src\lj_ffrecord.h" />
<ClInclude Include="$(SrcDir)src\lj_frame.h" />
<ClInclude Include="$(SrcDir)src\lj_func.h" />
<ClInclude Include="$(SrcDir)src\lj_gc.h" />
<ClInclude Include="$(SrcDir)src\lj_gdbjit.h" />
<ClInclude Include="$(SrcDir)src\lj_ir.h" />
<ClInclude Include="$(SrcDir)src\lj_ircall.h" />
<ClInclude Include="$(SrcDir)src\lj_iropt.h" />
<ClInclude Include="$(SrcDir)src\lj_jit.h" />
<ClInclude Include="$(SrcDir)src\lj_lex.h" />
<ClInclude Include="$(SrcDir)src\lj_lib.h" />
<ClInclude Include="$(SrcDir)src\lj_mcode.h" />
<ClInclude Include="$(SrcDir)src\lj_meta.h" />
<ClInclude Include="$(SrcDir)src\lj_obj.h" />
<ClInclude Include="$(SrcDir)src\lj_parse.h" />
<ClInclude Include="$(SrcDir)src\lj_record.h" />
<ClInclude Include="$(SrcDir)src\lj_snap.h" />
<ClInclude Include="$(SrcDir)src\lj_state.h" />
<ClInclude Include="$(SrcDir)src\lj_str.h" />
<ClInclude Include="$(SrcDir)src\lj_strscan.h" />
<ClInclude Include="$(SrcDir)src\lj_tab.h" />
<ClInclude Include="$(SrcDir)src\lj_target.h" />
<ClInclude Include="$(SrcDir)src\lj_target_arm.h" />
<ClInclude Include="$(SrcDir)src\lj_target_mips.h" />
<ClInclude Include="$(SrcDir)src\lj_target_ppc.h" />
<ClInclude Include="$(SrcDir)src\lj_target_x86.h" />
<ClInclude Include="$(SrcDir)src\lj_trace.h" />
<ClInclude Include="$(SrcDir)src\lj_traceerr.h" />
<ClInclude Include="$(SrcDir)src\lj_udata.h" />
<ClInclude Include="$(SrcDir)src\lj_vm.h" />
<ClInclude Include="$(SrcDir)src\lj_vmevent.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)src\jit\bc.lua" />
<None Include="$(SrcDir)src\jit\bcsave.lua" />
<None Include="$(SrcDir)src\jit\dis_arm.lua" />
<None Include="$(SrcDir)src\jit\dis_mips.lua" />
<None Include="$(SrcDir)src\jit\dis_mipsel.lua" />
<None Include="$(SrcDir)src\jit\dis_ppc.lua" />
<None Include="$(SrcDir)src\jit\dis_x64.lua" />
<None Include="$(SrcDir)src\jit\dis_x86.lua" />
<None Include="$(SrcDir)src\jit\dump.lua" />
<None Include="$(SrcDir)src\jit\v.lua" />
<None Include="$(SrcDir)src\jit\vmdef.lua" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\luajit-buildvm\luajit-buildvm.vcxproj">
<Project>{7ca6a4eb-a11b-4975-8f3a-f633111c6213}</Project>
</ProjectReference>
</ItemGroup>
</Project>

View File

@ -0,0 +1,447 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Internal headers">
<UniqueIdentifier>{dfbe0704-0805-42a9-b221-0eb02d38e473}</UniqueIdentifier>
</Filter>
<Filter Include="Headers">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
</Filter>
<Filter Include="Core">
<UniqueIdentifier>{46f51bca-6fac-4e83-b18b-5e8145f11f3c}</UniqueIdentifier>
</Filter>
<Filter Include="Standard library">
<UniqueIdentifier>{947aec3e-b05b-404f-bd0d-27dfec92f4d0}</UniqueIdentifier>
</Filter>
<Filter Include="JIT">
<UniqueIdentifier>{5877d6d7-abc5-4e4d-9c16-64ae7538072e}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SrcDir)src\ljamalg.c" />
</ItemGroup>
<ItemGroup>
<LuajitVMSource Include="$(SrcDir)src\lj_alloc.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_api.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_asm.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_bc.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_bcread.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_bcwrite.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_carith.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_ccall.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_ccallback.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_cconv.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_cdata.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_char.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_clib.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_cparse.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_crecord.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_ctype.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_debug.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_dispatch.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_err.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_ffrecord.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_func.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_gc.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_gdbjit.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_ir.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_lex.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_lib.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_load.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_mcode.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_meta.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_obj.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_dce.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_fold.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_loop.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_mem.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_narrow.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_sink.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_opt_split.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_parse.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_record.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_snap.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_state.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_str.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_strscan.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_tab.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_trace.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_udata.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_vmevent.c">
<Filter>Core</Filter>
</LuajitVMSource>
<LuajitVMSource Include="$(SrcDir)src\lj_vmmath.c">
<Filter>Core</Filter>
</LuajitVMSource>
</ItemGroup>
<ItemGroup>
<InstallHeader Include="$(SrcDir)include\lauxlib.h">
<Filter>Headers</Filter>
</InstallHeader>
<InstallHeader Include="$(SrcDir)include\lua.h">
<Filter>Headers</Filter>
</InstallHeader>
<InstallHeader Include="$(SrcDir)include\lua.hpp">
<Filter>Headers</Filter>
</InstallHeader>
<InstallHeader Include="$(SrcDir)include\luaconf.h">
<Filter>Headers</Filter>
</InstallHeader>
<InstallHeader Include="$(SrcDir)include\luajit.h">
<Filter>Headers</Filter>
</InstallHeader>
<InstallHeader Include="$(SrcDir)include\lualib.h">
<Filter>Headers</Filter>
</InstallHeader>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SrcDir)src\lj_alloc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_arch.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_asm.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_asm_arm.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_asm_mips.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_asm_ppc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_asm_x86.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_bc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_bcdump.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_carith.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ccall.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ccallback.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_cconv.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_cdata.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_char.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_clib.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_cparse.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_crecord.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ctype.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_debug.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_def.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_dispatch.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_emit_arm.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_emit_mips.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_emit_ppc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_emit_x86.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_err.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_errmsg.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ff.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ffrecord.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_frame.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_func.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_gc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_gdbjit.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ir.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_ircall.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_iropt.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_jit.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_lex.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_lib.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_mcode.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_meta.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_obj.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_parse.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_record.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_snap.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_state.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_str.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_strscan.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_tab.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_target.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_target_arm.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_target_mips.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_target_ppc.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_target_x86.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_trace.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_traceerr.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_udata.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_vm.h">
<Filter>Internal headers</Filter>
</ClInclude>
<ClInclude Include="$(SrcDir)src\lj_vmevent.h">
<Filter>Internal headers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<LuajitLibSource Include="$(SrcDir)src\lib_aux.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_base.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_bit.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_debug.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_ffi.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_init.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_io.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_jit.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_math.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_os.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_package.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_string.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
<LuajitLibSource Include="$(SrcDir)src\lib_table.c">
<Filter>Standard library</Filter>
</LuajitLibSource>
</ItemGroup>
<ItemGroup>
<None Include="$(SrcDir)src\jit\bc.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\bcsave.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_arm.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_mips.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_mipsel.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_ppc.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_x64.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dis_x86.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\dump.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\v.lua">
<Filter>JIT</Filter>
</None>
<None Include="$(SrcDir)src\jit\vmdef.lua">
<Filter>JIT</Filter>
</None>
</ItemGroup>
</Project>

25
build/paths.props Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Path definitions</_PropertySheetDisplayName>
</PropertyGroup>
<PropertyGroup>
<!-- Base for Aegisub source code -->
<AegisubSourceBase Condition="'$(AegisubSourceBase)'==''">$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\'))</AegisubSourceBase>
<!-- Base for contrib libraries source code -->
<AegisubContribBase Condition="'$(AegisubContribBase)'==''">$(AegisubSourceBase)vendor\</AegisubContribBase>
<!-- Base for built files -->
<AegisubOutputBase Condition="'$(AegisubOutputBase)'==''">$(AegisubSourceBase)</AegisubOutputBase>
<!-- Directory for built executables -->
<AegisubBinaryDir Condition="'$(AegisubBinaryDir)'==''">$(AegisubOutputBase)bin\</AegisubBinaryDir>
<!-- Directory for built static libraries and link libraries -->
<AegisubLibraryDir Condition="'$(AegisubLibraryDir)'==''">$(AegisubOutputBase)lib\$(Platform)\$(Configuration)\</AegisubLibraryDir>
<!-- Directory for built object files, intentionally using flat structure -->
<AegisubObjectDir Condition="'$(AegisubObjectDir)'==''">$(AegisubOutputBase)obj\$(ProjectName)-$(Platform)-$(Configuration)\</AegisubObjectDir>
<!-- Platform/configuration suffix for binaries -->
<AegisubPlatformSuffix Condition="'$(Configuration)'=='Debug'">$(PlatformArchitecture)d</AegisubPlatformSuffix>
<AegisubPlatformSuffix Condition="'$(Configuration)'=='Release'">$(PlatformArchitecture)</AegisubPlatformSuffix>
<AegisubPlatformSuffix Condition="'$(AegisubPlatformSuffix)'==''">(unk)</AegisubPlatformSuffix> <!-- fallback -->
</PropertyGroup>
</Project>

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