fix linkage with freetype/icu twice on linux #1724

Closed
Dushistov wants to merge 1 commit from fix-odr into master
10 changed files with 44 additions and 20 deletions

View file

@ -6,3 +6,4 @@ target_include_directories(freetype
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/freetype2>
)
add_library(Freetype::Freetype ALIAS freetype)

View file

@ -1,8 +1,6 @@
project(icu)
# set(CMAKE_PREFIX_PATH ./)
set(SRC
add_library(icuuc
uconfig_local.h
icu/icu4c/source/common/appendable.cpp
icu/icu4c/source/common/bmpset.cpp
@ -89,6 +87,21 @@ set(SRC
icu/icu4c/source/common/utrie_swap.cpp
icu/icu4c/source/common/uvector.cpp
icu/icu4c/source/common/uvectr32.cpp
)
add_library(ICU::uc ALIAS icuuc)
target_include_directories(icuuc
PUBLIC
./
icu/icu4c/source/common
)
target_compile_definitions(icuuc
PUBLIC
UCONFIG_USE_LOCAL
)
add_library(icui18n
icu/icu4c/source/i18n/anytrans.cpp
icu/icu4c/source/i18n/casetrn.cpp
icu/icu4c/source/i18n/cpdtrans.cpp
@ -117,17 +130,17 @@ set(SRC
icu/icu4c/source/i18n/uni2name.cpp
icu/icu4c/source/stubdata/stubdata.cpp
)
add_library(ICU::i18n ALIAS icui18n)
add_library(${PROJECT_NAME} ${SRC})
target_compile_definitions(${PROJECT_NAME}
target_compile_definitions(icui18n
PUBLIC
UCONFIG_USE_LOCAL
)
target_include_directories(${PROJECT_NAME}
target_include_directories(icui18n
PUBLIC
./
icu/icu4c/source/common
icu/icu4c/source/i18n
PRIVATE
icu/icu4c/source/common
)

View file

@ -285,9 +285,14 @@ set(EXPAT_SHARED_LIBS OFF)
add_subdirectory(3party/expat/expat)
add_subdirectory(3party/agg)
add_subdirectory(3party/bsdiff-courgette)
add_subdirectory(3party/freetype)
add_subdirectory(3party/gflags)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
find_package(ICU COMPONENTS uc i18n data REQUIRED)
find_package(Freetype REQUIRED)
else()
add_subdirectory(3party/freetype)
add_subdirectory(3party/icu)
endif()
add_subdirectory(3party/jansson)
add_subdirectory(3party/liboauthcpp)
add_subdirectory(3party/minizip)

View file

@ -93,11 +93,14 @@ set(SRC
omim_add_library(${PROJECT_NAME} ${SRC})
target_link_libraries(${PROJECT_NAME}
PUBLIC
ICU::uc
ICU::i18n # For transliteration.
PRIVATE
base
expat
jansson
succinct
icu # For transliteration.
oauthcpp # For base64_encode and base64_decode
minizip
${LIBZ}

View file

@ -6,11 +6,11 @@
#include <memory>
#include <mutex>
#include <string>
#include <unicode/uversion.h>
namespace icu
{
U_NAMESPACE_BEGIN
class UnicodeString;
} // namespace icu
U_NAMESPACE_END
class Transliteration
{

View file

@ -164,16 +164,18 @@ if (PLATFORM_LINUX)
endif()
target_link_libraries(${PROJECT_NAME}
PUBLIC
Freetype::Freetype
vulkan_wrapper
PRIVATE
indexer
platform
geometry
coding
base
freetype
vulkan_wrapper
stb_image
sdf_image
icu
ICU::i18n
expat
$<$<BOOL:${PLATFORM_MAC}>:-framework\ OpenGL>
$<$<BOOL:${PLATFORM_LINUX}>:OpenGL::GL>

View file

@ -29,7 +29,7 @@ omim_link_libraries(
opening_hours
freetype
expat
icu
ICU::i18n
jansson
protobuf
bsdiff

View file

@ -19,7 +19,7 @@ omim_link_libraries(
coding
geometry
base
icu
ICU::i18n
jansson
oauthcpp
protobuf

View file

@ -24,7 +24,7 @@ omim_link_libraries(
coding
base
bsdiff
icu
ICU::i18n
jansson
oauthcpp
opening_hours

View file

@ -42,7 +42,7 @@ omim_link_libraries(
pugixml
opening_hours
succinct
icu
ICU::i18n
${Boost_LIBRARIES}
${LIBZ}
)