aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Müller <muemart@users.noreply.github.com>2017-07-12 17:31:51 +0200
committerMartin Müller <muemart@users.noreply.github.com>2017-08-31 08:44:50 +0200
commit99a8d745495815916801003c744b845c2f9e278a (patch)
treea3750639806216476ae8c7fe9a235de7af0d583c
parentf76244f700f3ae0fe353c53c19d209589e8cdaf7 (diff)
downloadvcpkg-99a8d745495815916801003c744b845c2f9e278a.tar.gz
vcpkg-99a8d745495815916801003c744b845c2f9e278a.zip
Use ICU in boost build
-rw-r--r--ports/boost/0001-Fix-boost-ICU-support.patch166
-rw-r--r--ports/boost/CONTROL2
-rw-r--r--ports/boost/desktop/user-config.jam28
-rw-r--r--ports/boost/portfile.cmake6
-rw-r--r--ports/boost/uwp/user-config.jam8
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