diff --git a/Aegisub.sln b/Aegisub.sln index 7a20fabea..9d156dcad 100644 --- a/Aegisub.sln +++ b/Aegisub.sln @@ -70,6 +70,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortableInstaller", "aegisu EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost", "aegisub\build\boost\boost.vcxproj", "{A649D828-A399-4D81-ADEF-94CFDBA7847F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icu", "aegisub\build\icu\icu.vcxproj", "{F934AB7B-186B-4E96-B20C-A58C38C1B818}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -294,6 +296,17 @@ Global {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|Win32 + {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-MinDep|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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/aegisub/build/Aegisub/Aegisub.vcxproj b/aegisub/build/Aegisub/Aegisub.vcxproj index 83bdf3af9..1c4205600 100644 --- a/aegisub/build/Aegisub/Aegisub.vcxproj +++ b/aegisub/build/Aegisub/Aegisub.vcxproj @@ -63,6 +63,9 @@ {cc791693-6b28-40ac-879d-64a6c16468e3} + + {f934ab7b-186b-4e96-b20c-a58c38c1b818} + {bb3fed86-db7a-4dc7-964a-260fb86cde61} diff --git a/aegisub/build/Aegisub/Aegisub.xml b/aegisub/build/Aegisub/Aegisub.xml index 6970bb687..b3e04e116 100644 --- a/aegisub/build/Aegisub/Aegisub.xml +++ b/aegisub/build/Aegisub/Aegisub.xml @@ -235,6 +235,14 @@ Description="Location of Fontconfig source code." /> + + ..\..\..\deps\freetype2 ..\..\..\deps\fribidi ..\..\..\deps\fontconfig + ..\..\..\deps\icu\source ..\..\..\deps\libass ..\..\..\deps\wxWidgets ..\..\..\deps\zlib diff --git a/aegisub/build/icu/icu.vcxproj b/aegisub/build/icu/icu.vcxproj new file mode 100644 index 000000000..387a374d9 --- /dev/null +++ b/aegisub/build/icu/icu.vcxproj @@ -0,0 +1,111 @@ + + + + {F934AB7B-186B-4E96-B20C-A58C38C1B818} + MakeFileProj + Makefile + + + + + + + + + --enable-debug --disable-release CFLAGS=-MDd CXXFLAGS=-MDd + --disable-debug --enable-release CFLAGS=-MD CXXFLAGS=-MD + + CC=cl + CXX=cl + --enable-static + --disable-shared + --disable-extras + --disable-icuio + --disable-layout + --disable-tests + --disable-samples + $(CfgDebug) + + $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)$(IcuSrcDir)')) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aegisub/build/icu/mh-msys-msvc b/aegisub/build/icu/mh-msys-msvc new file mode 100644 index 000000000..d19c4b2c0 --- /dev/null +++ b/aegisub/build/icu/mh-msys-msvc @@ -0,0 +1,84 @@ +# ICU's mh-cygwin-msvc doesn't work with msys or Visual Studio 2012. +# There's a whole bunch of incompatibilities, so this is a complete replacement +# rather than just a patch. + +sbindir=$(bindir) +CPPFLAGS += -DU_STATIC_IMPLEMENTATION -DUCONFIG_NO_LEGACY_CONVERSION=1 -DU_ENABLE_DYLOAD=0 -DUCONFIG_NO_FILE_IO=1 -DU_CHARSET_IS_UTF8=1 + +ifeq ($(ENABLE_DEBUG),1) +CPPFLAGS+=-D_DEBUG=1 +CFLAGS+=-Z7 +CXXFLAGS+=-Z7 +else +CPPFLAGS+=-DU_RELEASE=1 +endif + +CFLAGS+=-GF -nologo +CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t +CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE +DEFS+=-DWIN32 -DCYGWINMSVC +LDFLAGS+=-nologo + +COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c +COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c +LINK.c= LINK.EXE -subsystem:console $(LDFLAGS) +LINK.cc= LINK.EXE -subsystem:console $(LDFLAGS) + +OUTOPT = -out: + +LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX) +A = lib +STATIC_O=o + +AR = LIB.EXE +ARFLAGS := -nologo $(ARFLAGS:r=) +RANLIB = ls -s +AR_OUTOPT = -OUT: + +IMPORT_LIB_EXT = .lib + +LIBPREFIX= +DEFAULT_LIBS = advapi32.lib + +DATA_STUBNAME = dt +I18N_STUBNAME = in +LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) + +ifeq ($(wildcard $(LIBDIR)/$(LIBICU)$(DATA_STUBNAME)$(ICULIBSUFFIX).lib),) +LIBICUDT= $(top_builddir)/stubdata/$(LIBICU)$(DATA_STUBNAME)$(ICULIBSUFFIX).lib +else +LIBICUDT= $(LIBDIR)/$(LIBICU)$(DATA_STUBNAME)$(ICULIBSUFFIX).lib +endif +LIBICUUC= $(LIBDIR)/$(LIBICU)$(COMMON_STUBNAME)$(ICULIBSUFFIX).lib $(LIBICUDT) +LIBICUI18N= $(LIBDIR)/$(LIBICU)$(I18N_STUBNAME)$(ICULIBSUFFIX).lib +LIBICULE= $(LIBDIR)/$(LIBICU)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX).lib +LIBICULX= $(LIBDIR)/$(LIBICU)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX).lib +LIBICUIO= $(LIBDIR)/$(LIBICU)$(IO_STUBNAME)$(ICULIBSUFFIX).lib +LIBICUTOOLUTIL= $(LIBDIR)/$(LIBICU)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX).lib + +LDFLAGSICUDT+= /base:"0x4ad00000" -NOENTRY# The NOENTRY option is required for creating a resource-only DLL. +LDFLAGSICUUC= /base:"0x4a800000"# in-uc = 1MB +LDFLAGSICUI18N= /base:"0x4a900000"# io-in = 2MB +LDFLAGSICUIO= /base:"0x4ab00000"# le-io = 1MB +LDFLAGSICULE= /base:"0x4ac00000"# lx-le = 512KB +LDFLAGSICULX= /base:"0x4ac80000" +LDFLAGSICUTOOLUTIL= /base:"0x4ac00000"# Same as layout. Layout and tools probably won't mix. + +%.o: $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -Fo$@ $< + +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -Fo$@ $< + +%.res : $(srcdir)/%.rc + rc.exe -fo$@ $(CPPFLAGS) $< + +ICUPKGDATA_INSTALL_DIR = $(libdir) + +ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR) + +INSTALL-L=$(INSTALL_PROGRAM) + +LDLIBRARYPATH_ENVVAR = PATH + +PKGDATA_INVOKE_OPTS = MAKEFLAGS= diff --git a/aegisub/build/respack/respack.vcxproj b/aegisub/build/respack/respack.vcxproj index a16129363..ed6fc0a96 100644 --- a/aegisub/build/respack/respack.vcxproj +++ b/aegisub/build/respack/respack.vcxproj @@ -23,6 +23,7 @@ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(AegisubLibraryDir);%(AdditionalLibraryDirectories) Console diff --git a/aegisub/build/standard-settings.props b/aegisub/build/standard-settings.props index 5998f4617..c82aa3079 100644 --- a/aegisub/build/standard-settings.props +++ b/aegisub/build/standard-settings.props @@ -25,6 +25,7 @@ $(AegisubSourceBase)src\msvc; $(AegisubSourceBase)\include; $(BoostPath); + $(IcuSrcDir)\include; %(AdditionalIncludeDirectories) 4345