diff options
| author | Martin Müller <muemart@users.noreply.github.com> | 2017-07-12 17:31:51 +0200 |
|---|---|---|
| committer | Martin Müller <muemart@users.noreply.github.com> | 2017-08-31 08:44:50 +0200 |
| commit | 99a8d745495815916801003c744b845c2f9e278a (patch) | |
| tree | a3750639806216476ae8c7fe9a235de7af0d583c | |
| parent | f76244f700f3ae0fe353c53c19d209589e8cdaf7 (diff) | |
| download | vcpkg-99a8d745495815916801003c744b845c2f9e278a.tar.gz vcpkg-99a8d745495815916801003c744b845c2f9e278a.zip | |
Use ICU in boost build
| -rw-r--r-- | ports/boost/0001-Fix-boost-ICU-support.patch | 166 | ||||
| -rw-r--r-- | ports/boost/CONTROL | 2 | ||||
| -rw-r--r-- | ports/boost/desktop/user-config.jam | 28 | ||||
| -rw-r--r-- | ports/boost/portfile.cmake | 6 | ||||
| -rw-r--r-- | ports/boost/uwp/user-config.jam | 8 |
5 files changed, 208 insertions, 2 deletions
diff --git a/ports/boost/0001-Fix-boost-ICU-support.patch b/ports/boost/0001-Fix-boost-ICU-support.patch new file mode 100644 index 000000000..1952f5a64 --- /dev/null +++ b/ports/boost/0001-Fix-boost-ICU-support.patch @@ -0,0 +1,166 @@ +--- + libs/locale/build/Jamfile.v2 | 63 ++++++-------------------------------- + libs/locale/build/has_icu_test.cpp | 4 --- + libs/regex/build/Jamfile.v2 | 47 +++++++--------------------- + 3 files changed, 20 insertions(+), 94 deletions(-) + +diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2 +index 578e722..5f25917 100644 +--- a/libs/locale/build/Jamfile.v2 ++++ b/libs/locale/build/Jamfile.v2 +@@ -70,62 +70,17 @@ if $(ICU_LINK) + } + 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 ; ++ alias icuuc : /user-config//icuuc ; ++ alias icuin : /user-config//icuin ; ++ alias icudt : /user-config//icudt ; ++ ++ explicit icuuc icuin icudt ; + + 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 ; ++ <library>icuuc ++ <library>icuin ++ <library>icudt ++ <dll-path>$(ICU_PATH)/bin ; + + + +diff --git a/libs/locale/build/has_icu_test.cpp b/libs/locale/build/has_icu_test.cpp +index 9419b30..ed9be05 100644 +--- a/libs/locale/build/has_icu_test.cpp ++++ b/libs/locale/build/has_icu_test.cpp +@@ -15,10 +15,6 @@ + #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; +diff --git a/libs/regex/build/Jamfile.v2 b/libs/regex/build/Jamfile.v2 +index 58fd1fb..76ee9f4 100644 +--- a/libs/regex/build/Jamfile.v2 ++++ b/libs/regex/build/Jamfile.v2 +@@ -48,50 +48,25 @@ if ! $(disable-icu) + } + else + { +- lib icuuc : : <runtime-link>shared <conditional>@path_options ; +- lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ; +- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ; +- lib icuuc : : <name>sicuuc <runtime-link>static <conditional>@path_options ; +- lib icuuc : : <toolset>msvc <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ; +- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ; +- lib icuuc : : <name>this_is_an_invalid_library_name ; +- +- lib icudt : : <name>icudata <runtime-link>shared <conditional>@path_options ; +- lib icudt : : <name>icudt <toolset>msvc <runtime-link>shared <conditional>@path_options ; +- lib icudt : : <name>icudt <toolset>intel <target-os>windows <runtime-link>shared <conditional>@path_options ; +- lib icudt : : <name>sicudata <runtime-link>static <conditional>@path_options ; +- lib icudt : : <name>sicudt <toolset>msvc <runtime-link>static <conditional>@path_options ; +- lib icudt : : <name>sicudt <toolset>intel <target-os>windows <runtime-link>static <conditional>@path_options ; +- lib icudt : : <name>this_is_an_invalid_library_name ; +- +- lib icuin : : <name>icui18n <runtime-link>shared <conditional>@path_options ; +- lib icuin : : <toolset>msvc <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ; +- lib icuin : : <toolset>msvc <name>icuin <runtime-link>shared <conditional>@path_options ; +- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ; +- lib icuin : : <toolset>intel <target-os>windows <name>icuin <runtime-link>shared <conditional>@path_options ; +- lib icuin : : <name>sicui18n <runtime-link>static <conditional>@path_options ; +- lib icuin : : <toolset>msvc <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ; +- lib icuin : : <toolset>msvc <name>sicuin <runtime-link>static <conditional>@path_options ; +- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ; +- lib icuin : : <toolset>intel <target-os>windows <name>sicuin <runtime-link>static <conditional>@path_options ; +- lib icuin : : <name>this_is_an_invalid_library_name ; ++ ++ alias icuuc : /user-config//icuuc ; ++ alias icuin : /user-config//icuin ; ++ alias icudt : /user-config//icudt ; ++ ++ explicit icuuc icuin icudt ; + + ICU_OPTS = + <include>$(ICU_PATH)/include +- <runtime-link>shared:<library>icuuc/<link>shared +- <runtime-link>shared:<library>icudt/<link>shared +- <runtime-link>shared:<library>icuin/<link>shared +- <runtime-link>static:<library>icuuc +- <runtime-link>static:<library>icudt +- <runtime-link>static:<library>icuin +- <define>BOOST_HAS_ICU=1 +- <runtime-link>static:<define>U_STATIC_IMPLEMENTATION=1 ++ <library>icuuc ++ <library>icudt ++ <library>icuin ++ <define>BOOST_HAS_ICU=1 + ; + } + + } + +-unit-test has_icu : has_icu_test.cpp : $(ICU_OPTS) ; ++exe has_icu : has_icu_test.cpp : $(ICU_OPTS) ; + explicit has_icu ; + + alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ; +-- +2.12.2.windows.2 + diff --git a/ports/boost/CONTROL b/ports/boost/CONTROL index 8200d54d1..6c7732021 100644 --- a/ports/boost/CONTROL +++ b/ports/boost/CONTROL @@ -1,4 +1,4 @@ Source: boost Version: 1.65-1 Description: Peer-reviewed portable C++ source libraries -Build-Depends: zlib, bzip2 +Build-Depends: zlib, bzip2, icu [windows] diff --git a/ports/boost/desktop/user-config.jam b/ports/boost/desktop/user-config.jam index 8faba6d72..212cd06b8 100644 --- a/ports/boost/desktop/user-config.jam +++ b/ports/boost/desktop/user-config.jam @@ -5,3 +5,31 @@ using msvc : 14.0 : cl.exe : using msvc : 14.1 : cl.exe : <setup>echo ; + +project user-config ; +lib advapi32 ; +lib icuuc : : <search>@CURRENT_INSTALLED_DIR@/lib : : + <runtime-link>@LIB_RUNTIME_LINK@ + <library>advapi32 ; + +lib icuuc : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + <variant>debug + <name>icuucd : : + <runtime-link>@LIB_RUNTIME_LINK@ + <library>advapi32 ; + +lib icuin : : <search>@CURRENT_INSTALLED_DIR@/lib : : + <runtime-link>@LIB_RUNTIME_LINK@ ; + +lib icuin : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + <variant>debug + <name>icuind : : + <runtime-link>@LIB_RUNTIME_LINK@ ; + +lib icudt : : <search>@CURRENT_INSTALLED_DIR@/lib : : + <runtime-link>@LIB_RUNTIME_LINK@ ; + +lib icudt : : <search>@CURRENT_INSTALLED_DIR@/debug/lib + <variant>debug + <name>icudtd : : + <runtime-link>@LIB_RUNTIME_LINK@ ;
\ No newline at end of file diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake index 3ed0ed9c5..74db8a524 100644 --- a/ports/boost/portfile.cmake +++ b/ports/boost/portfile.cmake @@ -32,7 +32,8 @@ FILE(READ "${DIFF}" content) STRING(REGEX REPLACE "include/" "" content "${content}") set(DIFF2 ${CURRENT_BUILDTREES_DIR}/src/boost-range-has_range_iterator-hotfix_e7ebe14707130cda7b72e0ae5e93b17157fdb6a2.diff.fixed) FILE(WRITE ${DIFF2} "${content}") -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF2}) +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${DIFF2} + ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-boost-ICU-support.patch) ###################### # Cleanup previous builds @@ -83,6 +84,7 @@ message(STATUS "Bootstrapping done") set(B2_OPTIONS -sZLIB_INCLUDE="${CURRENT_INSTALLED_DIR}\\include" -sBZIP2_INCLUDE="${CURRENT_INSTALLED_DIR}\\include" + -sICU_PATH="${CURRENT_INSTALLED_DIR}" -j$ENV{NUMBER_OF_PROCESSORS} --debug-configuration --hash @@ -92,10 +94,12 @@ set(B2_OPTIONS threading=multi ) +set(LIB_RUNTIME_LINK "shared") if (VCPKG_CRT_LINKAGE STREQUAL dynamic) list(APPEND B2_OPTIONS runtime-link=shared) else() list(APPEND B2_OPTIONS runtime-link=static) + set(LIB_RUNTIME_LINK "static") endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/boost/uwp/user-config.jam b/ports/boost/uwp/user-config.jam index 88e7c5974..975b1d412 100644 --- a/ports/boost/uwp/user-config.jam +++ b/ports/boost/uwp/user-config.jam @@ -13,3 +13,11 @@ using msvc : 14.1 : cl.exe : <linkflags>RuntimeObject.lib <linkflags>ole32.lib ; + +project user-config ; + +lib icuuc : : <name>dummy_lib_that_doesnt_exist ; + +lib icuin : : <name>dummy_lib_that_doesnt_exist ; + +lib icudt : : <name>dummy_lib_that_doesnt_exist ;
\ No newline at end of file |
