diff options
Diffstat (limited to 'src/boost/libs/locale/build')
-rw-r--r-- | src/boost/libs/locale/build/Jamfile.v2 | 445 | ||||
-rw-r--r-- | src/boost/libs/locale/build/has_iconv.cpp | 14 | ||||
-rw-r--r-- | src/boost/libs/locale/build/has_icu_test.cpp | 29 | ||||
-rw-r--r-- | src/boost/libs/locale/build/has_xlocale.cpp | 12 | ||||
-rw-r--r-- | src/boost/libs/locale/build/option.cpp | 10 |
5 files changed, 510 insertions, 0 deletions
diff --git a/src/boost/libs/locale/build/Jamfile.v2 b/src/boost/libs/locale/build/Jamfile.v2 new file mode 100644 index 000000000..578e722ee --- /dev/null +++ b/src/boost/libs/locale/build/Jamfile.v2 @@ -0,0 +1,445 @@ +# copyright John Maddock 2003, Artyom Beilis 2010 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt. + + + +project /boost/locale + : source-location ../src + ; + +import configure ; +import os ; +import toolset ; +import project ; +import feature ; +# Features + +feature.feature boost.locale.iconv : on off : optional propagated ; +feature.feature boost.locale.icu : on off : optional propagated ; +feature.feature boost.locale.posix : on off : optional propagated ; +feature.feature boost.locale.std : on off : optional propagated ; +feature.feature boost.locale.winapi : on off : optional propagated ; + +# Configuration of libraries + +## iconv + +obj has_iconv_libc_obj : ../build/has_iconv.cpp ; +exe has_iconv : has_iconv_libc_obj ; +explicit has_iconv ; + +ICONV_PATH = [ modules.peek : ICONV_PATH ] ; + +lib iconv + : + : <search>$(ICONV_PATH)/lib <link>shared <runtime-link>shared + : + : <include>$(ICONV_PATH)/include + ; + +explicit iconv ; + +obj has_iconv_libc_ext : ../build/has_iconv.cpp iconv ; +exe has_external_iconv : has_iconv_libc_ext iconv ; +explicit has_external_iconv ; + +exe accepts_shared_option : ../build/option.cpp + : <cxxflags>-shared-libstdc++ + <cxxflags>-shared-libgcc + <linkflags>-shared-libstdc++ + <linkflags>-shared-libgcc + ; + +# Xlocale +obj has_xlocale_obj : ../build/has_xlocale.cpp ; +exe has_xlocale : has_xlocale_obj ; +explicit has_xlocale ; + +#end xlocale + + +ICU_PATH = [ modules.peek : ICU_PATH ] ; +ICU_LINK = [ modules.peek : ICU_LINK ] ; + +if $(ICU_LINK) +{ + ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ; + ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ; +} +else +{ + searched-lib icuuc : : <name>icuuc + <search>$(ICU_PATH)/lib + <link>shared + <runtime-link>shared ; + + searched-lib icuuc : : <toolset>msvc + <variant>debug + <name>icuucd + <search>$(ICU_PATH)/lib + <link>shared + <runtime-link>shared ; + + searched-lib icuuc : : <name>this_is_an_invalid_library_name ; + + searched-lib icudt : : <search>$(ICU_PATH)/lib + <name>icudata + <link>shared + <runtime-link>shared ; + + searched-lib icudt : : <search>$(ICU_PATH)/lib + <name>icudt + <toolset>msvc + <link>shared + <runtime-link>shared ; + + searched-lib icudt : : <name>this_is_an_invalid_library_name ; + + searched-lib icuin : : <search>$(ICU_PATH)/lib + <name>icui18n + <link>shared + <runtime-link>shared ; + + searched-lib icuin : : <toolset>msvc + <variant>debug + <name>icuind + <search>$(ICU_PATH)/lib + <link>shared + <runtime-link>shared ; + + searched-lib icuin : : <toolset>msvc + <variant>release + <name>icuin + <search>$(ICU_PATH)/lib + <link>shared + <runtime-link>shared ; + + searched-lib icuin : : <name>this_is_an_invalid_library_name ; + + explicit icuuc icudt icuin ; + + ICU_OPTS = <include>$(ICU_PATH)/include + <library>icuuc/<link>shared/<runtime-link>shared + <library>icudt/<link>shared/<runtime-link>shared + <library>icuin/<link>shared/<runtime-link>shared + <dll-path>$(ICU_PATH)/bin + <runtime-link>shared ; + + + + searched-lib icuuc_64 : : <name>icuuc + <search>$(ICU_PATH)/lib64 + <link>shared + <runtime-link>shared ; + + searched-lib icuuc_64 : : <toolset>msvc + <variant>debug + <name>icuucd + <search>$(ICU_PATH)/lib64 + <link>shared + <runtime-link>shared ; + + searched-lib icuuc_64 : : <name>this_is_an_invalid_library_name ; + + searched-lib icudt_64 : : <search>$(ICU_PATH)/lib64 + <name>icudata + <link>shared + <runtime-link>shared ; + + searched-lib icudt_64 : : <search>$(ICU_PATH)/lib64 + <name>icudt + <toolset>msvc + <link>shared + <runtime-link>shared ; + + searched-lib icudt_64 : : <name>this_is_an_invalid_library_name ; + + searched-lib icuin_64 : : <search>$(ICU_PATH)/lib64 + <name>icui18n + <link>shared + <runtime-link>shared ; + + searched-lib icuin_64 : : <toolset>msvc + <variant>debug + <name>icuind + <search>$(ICU_PATH)/lib64 + <link>shared + <runtime-link>shared ; + + searched-lib icuin_64 : : <toolset>msvc + <variant>release + <name>icuin + <search>$(ICU_PATH)/lib64 + <link>shared + <runtime-link>shared ; + + searched-lib icuin_64 : : <name>this_is_an_invalid_library_name ; + + explicit icuuc_64 icudt_64 icuin_64 ; + + ICU64_OPTS = <include>$(ICU_PATH)/include + <library>icuuc_64/<link>shared/<runtime-link>shared + <library>icudt_64/<link>shared/<runtime-link>shared + <library>icuin_64/<link>shared/<runtime-link>shared + <dll-path>$(ICU_PATH)/bin64 + <runtime-link>shared ; + + +} + +obj has_icu_obj : ../build/has_icu_test.cpp : $(ICU_OPTS) ; +obj has_icu64_obj : ../build/has_icu_test.cpp : $(ICU64_OPTS) ; + +exe has_icu : has_icu_obj : $(ICU_OPTS) ; +exe has_icu64 : has_icu64_obj : $(ICU64_OPTS) ; + +explicit has_icu has_icu64 ; + + +# This function is called whenever the 'boost_locale' metatarget +# below is generated and figures what external components we have, +# what user wants, and what sources have to be compiled in the end. +rule configure-full ( properties * : flags-only ) +{ + + local result ; + local flags-result ; + + local found-iconv ; + + if <boost.locale.iconv>on in $(properties) + || ! <boost.locale.iconv> in $(properties:G) + && ! <target-os>solaris in $(properties) + { + # See if iconv is bundled with standard library. + if [ configure.builds has_iconv : $(properties) : "iconv (libc)" ] + { + found-iconv = true ; + } + else + { + if [ configure.builds has_external_iconv : $(properties) : "iconv (separate)" ] + { + found-iconv = true ; + result += <library>iconv ; + } + } + } + if $(found-iconv) + { + flags-result += <define>BOOST_LOCALE_WITH_ICONV=1 ; + } + + local found-icu ; + + if ! <boost.locale.icu>off in $(properties) + { + if [ configure.builds has_icu : $(properties) : "icu" ] + { + found-icu = true ; + flags-result += <define>BOOST_LOCALE_WITH_ICU=1 $(ICU_OPTS) ; + } + else if [ configure.builds has_icu64 : $(properties) : "icu (lib64)" ] + { + found-icu = true ; + flags-result += <define>BOOST_LOCALE_WITH_ICU=1 $(ICU64_OPTS) ; + } + + if $(found-icu) + { + ICU_SOURCES = + boundary + codecvt + collator + conversion + date_time + formatter + icu_backend + numeric + time_zone + ; + + result += <source>icu/$(ICU_SOURCES).cpp + <library>../../thread/build//boost_thread + ; + } + + } + + if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) && ! <target-os>cygwin in $(properties) + { + ECHO "- Boost.Locale needs either iconv or ICU library to be built." ; + result += <build>no ; + } + + if ! <boost.locale.std> in $(properties:G) + { + if <toolset>sun in $(properties) + { + properties += <boost.locale.std>off ; + } + else + { + properties += <boost.locale.std>on ; + } + } + + if <boost.locale.std>off in $(properties) + { + flags-result += <define>BOOST_LOCALE_NO_STD_BACKEND=1 ; + } + else + { + STD_SOURCES = + codecvt + collate + converter + numeric + std_backend + ; + result += <source>std/$(STD_SOURCES).cpp ; + } + + if ! <boost.locale.winapi> in $(properties:G) + { + if <target-os>windows in $(properties) + || <target-os>cygwin in $(properties) + { + properties += <boost.locale.winapi>on ; + } + else + { + properties += <boost.locale.winapi>off ; + } + } + if <target-os>windows in $(properties) + && <toolset>gcc in $(properties) + && <link>shared in $(properties) + && [ configure.builds accepts_shared_option : $(properties) : "g++ -shared-* supported" ] + { + flags-result += <cxxflags>-shared-libstdc++ + <cxxflags>-shared-libgcc + <linkflags>-shared-libstdc++ + <linkflags>-shared-libgcc + ; + } + + if <boost.locale.winapi>off in $(properties) + { + flags-result += <define>BOOST_LOCALE_NO_WINAPI_BACKEND=1 ; + } + else + { + WINAPI_SOURCES = + collate + converter + numeric + win_backend + ; + result += <source>win32/$(WINAPI_SOURCES).cpp ; + } + + if ( ! <boost.locale.winapi>off in $(properties) || ! <boost.locale.std>off in $(properties) ) + && ( <target-os>windows in $(properties) || <target-os>cygwin in $(properties) ) + { + result += <source>win32/lcid.cpp ; + } + + if ! <boost.locale.posix> in $(properties:G) + { + if <target-os>linux in $(properties) + || <target-os>darwin in $(properties) + || ( <target-os>freebsd in $(properties) && [ configure.builds has_xlocale : $(properties) : "xlocale supported" ] ) + { + properties += <boost.locale.posix>on ; + } + else + { + properties += <boost.locale.posix>off ; + } + } + + if <boost.locale.posix>off in $(properties) + { + flags-result += <define>BOOST_LOCALE_NO_POSIX_BACKEND=1 ; + } + else + { + POSIX_SOURCES = + collate + converter + numeric + codecvt + posix_backend + ; + result += <source>posix/$(POSIX_SOURCES).cpp ; + } + + if <boost.locale.posix>on in $(properties) || <boost.locale.std>on in $(properties) || <boost.locale.winapi>on in $(properties) + { + result += <source>util/gregorian.cpp ; + } + + result += <library>../../system/build//boost_system ; + + + if "$(flags-only)" = "flags" + { + return $(flags-result) ; + } + else { + result += $(flags-result) ; + return $(result) ; + } +} + +rule configure ( properties * ) +{ + local result = [ configure-full $(properties) : "all" ] ; + return $(result) ; + +} + +rule configure-flags ( properties * ) +{ + local result ; + result = [ configure-full $(properties) : "flags" ] ; + return $(result) ; + +} + + +alias build_options : : : : <conditional>@configure ; +alias build_flags : : : : <conditional>@configure-flags ; + +lib boost_locale + : + encoding/codepage.cpp + shared/date_time.cpp + shared/format.cpp + shared/formatting.cpp + shared/generator.cpp + shared/ids.cpp + shared/localization_backend.cpp + shared/message.cpp + shared/mo_lambda.cpp + util/codecvt_converter.cpp + util/default_locale.cpp + util/info.cpp + util/locale_data.cpp + : + # Don't link explicitly, not required + <define>BOOST_THREAD_NO_LIB=1 + <link>shared:<define>BOOST_LOCALE_DYN_LINK=1 + <threading>multi + # Meanwhile remove this + <conditional>@configure + ; + +boost-install boost_locale ; + + +# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 + diff --git a/src/boost/libs/locale/build/has_iconv.cpp b/src/boost/libs/locale/build/has_iconv.cpp new file mode 100644 index 000000000..7b500580f --- /dev/null +++ b/src/boost/libs/locale/build/has_iconv.cpp @@ -0,0 +1,14 @@ +// +// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#include <iconv.h> + +int main() +{ + iconv_t d = iconv_open(0,0); + (void)(d); +} diff --git a/src/boost/libs/locale/build/has_icu_test.cpp b/src/boost/libs/locale/build/has_icu_test.cpp new file mode 100644 index 000000000..9419b3019 --- /dev/null +++ b/src/boost/libs/locale/build/has_icu_test.cpp @@ -0,0 +1,29 @@ +/* + * + * Copyright (c) 2010 + * John Maddock + * + * Use, modification and distribution are subject to the + * Boost Software License, Version 1.0. (See accompanying file + * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + * + */ + +#include <unicode/uversion.h> +#include <unicode/locid.h> +#include <unicode/utypes.h> +#include <unicode/uchar.h> +#include <unicode/coll.h> + +#if defined(_MSC_VER) && !defined(_DLL) +#error "Mixing ICU with a static runtime doesn't work" +#endif + +int main() +{ + icu::Locale loc; + UErrorCode err = U_ZERO_ERROR; + UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, "GREEK SMALL LETTER ALPHA", &err); + return err; +} + diff --git a/src/boost/libs/locale/build/has_xlocale.cpp b/src/boost/libs/locale/build/has_xlocale.cpp new file mode 100644 index 000000000..4d788e2b7 --- /dev/null +++ b/src/boost/libs/locale/build/has_xlocale.cpp @@ -0,0 +1,12 @@ +// +// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#include <xlocale.h> +int main() +{ + newlocale(LC_ALL_MASK,"",0); +} diff --git a/src/boost/libs/locale/build/option.cpp b/src/boost/libs/locale/build/option.cpp new file mode 100644 index 000000000..d321a959d --- /dev/null +++ b/src/boost/libs/locale/build/option.cpp @@ -0,0 +1,10 @@ +// +// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +int main() +{ +} |