summaryrefslogtreecommitdiff
path: root/src/corefx/System.Globalization.Native/CMakeLists.txt
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2016-10-26 11:46:24 +0200
committerGitHub <noreply@github.com>2016-10-26 11:46:24 +0200
commitcf0c28faec35090781799df0a2360cf2440d05ce (patch)
treec63e4cc210046d0a3d51530951491d4e59ada15d /src/corefx/System.Globalization.Native/CMakeLists.txt
parent14a139d05e1e53552e991ddec915026c022c8071 (diff)
downloadcoreclr-cf0c28faec35090781799df0a2360cf2440d05ce.tar.gz
coreclr-cf0c28faec35090781799df0a2360cf2440d05ce.tar.bz2
coreclr-cf0c28faec35090781799df0a2360cf2440d05ce.zip
Remove dependency of System.Globalization.Native.so on specific ICU version (#7773)
Remove dependency of System.Globalization.Native.so on specific ICU version
Diffstat (limited to 'src/corefx/System.Globalization.Native/CMakeLists.txt')
-rw-r--r--src/corefx/System.Globalization.Native/CMakeLists.txt34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/corefx/System.Globalization.Native/CMakeLists.txt b/src/corefx/System.Globalization.Native/CMakeLists.txt
index 3d9e392132..5892856dfe 100644
--- a/src/corefx/System.Globalization.Native/CMakeLists.txt
+++ b/src/corefx/System.Globalization.Native/CMakeLists.txt
@@ -14,7 +14,7 @@ if(UTYPES_H STREQUAL UTYPES_H-NOTFOUND)
return()
endif()
-if(NOT CLR_CMAKE_PLATFORM_DARWIN)
+if (FEATURE_FIXED_ICU_VERSION AND NOT CLR_CMAKE_PLATFORM_DARWIN)
find_library(ICUUC icuuc)
if(ICUUC STREQUAL ICUUC-NOTFOUND)
message(FATAL_ERROR "Cannot find libicuuc, try installing libicu-dev (or the appropriate package for your platform)")
@@ -26,12 +26,16 @@ if(NOT CLR_CMAKE_PLATFORM_DARWIN)
message(FATAL_ERROR "Cannot find libicui18n, try installing libicu-dev (or the appropriate package for your platform)")
return()
endif()
-else()
+endif()
+
+if(CLR_CMAKE_PLATFORM_DARWIN)
find_library(ICUCORE icucore)
if(ICUI18N STREQUAL ICUCORE-NOTFOUND)
message(FATAL_ERROR "Cannot find libicucore, skipping build for System.Globalization.Native. .NET globalization is not expected to function.")
return()
endif()
+ # On Darwin, we always use the OS provided ICU
+ SET(FEATURE_FIXED_ICU_VERSION 1)
endif()
include(configure.cmake)
@@ -50,6 +54,12 @@ set(NATIVEGLOBALIZATION_SOURCES
timeZoneInfo.cpp
)
+if (NOT FEATURE_FIXED_ICU_VERSION)
+ list(APPEND NATIVEGLOBALIZATION_SOURCES
+ icushim.cpp
+ )
+endif()
+
include_directories(${UTYPES_H})
_add_library(System.Globalization.Native
@@ -60,11 +70,21 @@ _add_library(System.Globalization.Native
# Disable the "lib" prefix.
set_target_properties(System.Globalization.Native PROPERTIES PREFIX "")
+if (FEATURE_FIXED_ICU_VERSION)
+ add_definitions(-DFEATURE_FIXED_ICU_VERSION)
+endif()
+
if(NOT CLR_CMAKE_PLATFORM_DARWIN)
- target_link_libraries(System.Globalization.Native
- ${ICUUC}
- ${ICUI18N}
- )
+ if (FEATURE_FIXED_ICU_VERSION)
+ target_link_libraries(System.Globalization.Native
+ ${ICUUC}
+ ${ICUI18N}
+ )
+ elseif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
+ target_link_libraries(System.Globalization.Native
+ dl
+ )
+ endif()
else()
target_link_libraries(System.Globalization.Native
${ICUCORE}
@@ -74,4 +94,4 @@ else()
endif()
# add the install targets
-install_clr(System.Globalization.Native) \ No newline at end of file
+install_clr(System.Globalization.Native)