summaryrefslogtreecommitdiff
path: root/Modules/FindICU.cmake
diff options
context:
space:
mode:
authorFrancois Budin <francois.budin@kitware.com>2017-10-25 16:21:48 -0400
committerFrancois Budin <francois.budin@kitware.com>2017-10-25 16:21:48 -0400
commit20696a53e4f3a85886c1266c45923ea67f0ad494 (patch)
tree0a84e5984ecd8c36fe68493e26bcb9d24f438831 /Modules/FindICU.cmake
parent606ece67ef971af6fcd11051ae9d5aab7c07027c (diff)
downloadcmake-20696a53e4f3a85886c1266c45923ea67f0ad494.tar.gz
FindICU: Add support for static libraries on Windows
When compiling ICU statically on Windows with Visual Studio, the library file names are prefixed with 's' [1]. [1] http://source.icu-project.org/repos/icu/trunk/icu4c/source/icudefs.mk.in `STATIC_PREFIX_WHEN_USED = s`
Diffstat (limited to 'Modules/FindICU.cmake')
-rw-r--r--Modules/FindICU.cmake19
1 files changed, 19 insertions, 0 deletions
diff --git a/Modules/FindICU.cmake b/Modules/FindICU.cmake
index 3021167c86..aa531d5225 100644
--- a/Modules/FindICU.cmake
+++ b/Modules/FindICU.cmake
@@ -172,6 +172,11 @@ function(_ICU_FIND)
# Find all ICU libraries
list(APPEND icu_library_suffixes "${_lib64}" "lib")
set(ICU_REQUIRED_LIBS_FOUND ON)
+ set(static_prefix )
+ # static icu libraries compiled with MSVC have the prefix 's'
+ if(MSVC)
+ set(static_prefix "s")
+ endif()
foreach(component ${ICU_FIND_COMPONENTS})
string(TOUPPER "${component}" component_upcase)
set(component_cache "ICU_${component_upcase}_LIBRARY")
@@ -206,6 +211,20 @@ function(_ICU_FIND)
list(APPEND component_debug_libnames "icui18nd")
endif()
+ if(static_prefix)
+ unset(static_component_libnames)
+ unset(static_component_debug_libnames)
+ foreach(component_libname ${component_libnames})
+ list(APPEND static_component_libnames
+ ${static_prefix}${component_libname})
+ endforeach()
+ foreach(component_libname ${component_debug_libnames})
+ list(APPEND static_component_debug_libnames
+ ${static_prefix}${component_libname})
+ endforeach()
+ list(APPEND component_libnames ${static_component_libnames})
+ list(APPEND component_debug_libnames ${static_component_debug_libnames})
+ endif()
find_library("${component_cache_release}" ${component_libnames}
HINTS ${icu_roots}
PATH_SUFFIXES ${icu_library_suffixes}