From 9f8a64801720951ff58df1437f5287d0f333bafe Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Mon, 2 Jun 2014 06:52:15 -0700 Subject: [PATCH] Disable a bunch of ICU stuff we don't use Bumps ~800KB off the executable (and 100MB off icu.lib). --- build/boost/boost.vcxproj | 73 +++++++++++++++---------------- build/boost/boost.vcxproj.filters | 17 +------ build/boost/locale_stubs.cpp | 69 +++++++++++++++++++++++++++++ build/icu/icu.vcxproj | 9 ++++ 4 files changed, 115 insertions(+), 53 deletions(-) create mode 100644 build/boost/locale_stubs.cpp diff --git a/build/boost/boost.vcxproj b/build/boost/boost.vcxproj index f708057d9..64598c176 100644 --- a/build/boost/boost.vcxproj +++ b/build/boost/boost.vcxproj @@ -44,12 +44,44 @@ /> + + + + {f934ab7b-186b-4e96-b20c-a58c38c1b818} + + + {965054d2-44f2-4eb2-9879-051cc3d7ef08} + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -61,55 +93,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - @@ -119,6 +116,8 @@ + + diff --git a/build/boost/boost.vcxproj.filters b/build/boost/boost.vcxproj.filters index 8eb1ecd14..c8e796a47 100644 --- a/build/boost/boost.vcxproj.filters +++ b/build/boost/boost.vcxproj.filters @@ -117,21 +117,12 @@ locale\icu - - locale\icu - - - locale\icu - locale\icu locale\icu - - locale\icu - locale\util @@ -200,9 +191,6 @@ locale\icu - - locale\icu - locale\icu @@ -212,9 +200,6 @@ locale\icu - - locale\icu - locale\icu @@ -257,4 +242,4 @@ locale\encoding - + \ No newline at end of file diff --git a/build/boost/locale_stubs.cpp b/build/boost/locale_stubs.cpp new file mode 100644 index 000000000..57c3e921c --- /dev/null +++ b/build/boost/locale_stubs.cpp @@ -0,0 +1,69 @@ +// Copyright (c) 2014, Thomas Goyne +// +// 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 +#include +#include + +// 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 *create_messages_facet(messages_info const &info) { + return nullptr; +} + +template<> +message_format *create_messages_facet(messages_info const &info) { + return nullptr; +} + +#ifdef BOOST_HAS_CHAR16_T +template<> +message_format *create_messages_facet(messages_info const &info) { + return nullptr; +} +#endif + +#ifdef BOOST_HAS_CHAR32_T +template<> +message_format *create_messages_facet(messages_info const &info) { + return nullptr; +} +#endif +} +} } diff --git a/build/icu/icu.vcxproj b/build/icu/icu.vcxproj index b220b61df..56bb9e331 100644 --- a/build/icu/icu.vcxproj +++ b/build/icu/icu.vcxproj @@ -23,6 +23,15 @@ %(AdditionalIncludeDirectories) + 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;