diff options
author | svidyuk <svidyuk@yandex-team.com> | 2023-03-21 12:37:23 +0300 |
---|---|---|
committer | svidyuk <svidyuk@yandex-team.com> | 2023-03-21 12:37:23 +0300 |
commit | 8c039f0e189dfefc2f05e4f76c97ac5f804bb1f6 (patch) | |
tree | 4d124c9c4abad36bc898a383fb672d49d12aec79 | |
parent | f1303b6e66a6625241ad019ab59ef31611014c38 (diff) | |
download | ydb-8c039f0e189dfefc2f05e4f76c97ac5f804bb1f6.tar.gz |
Don't use standalone GNU iconv in opensource
-rw-r--r-- | contrib/libs/libiconv/ya.make | 20 | ||||
-rw-r--r-- | contrib/libs/libxml/CMakeLists.darwin-x86_64.txt | 2 | ||||
-rw-r--r-- | contrib/libs/libxml/CMakeLists.linux-aarch64.txt | 2 | ||||
-rw-r--r-- | contrib/libs/libxml/CMakeLists.linux-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/charset/CMakeLists.darwin-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/charset/CMakeLists.linux-aarch64.txt | 2 | ||||
-rw-r--r-- | library/cpp/charset/CMakeLists.linux-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/charset/iconv.cpp | 8 | ||||
-rw-r--r-- | library/cpp/charset/ya.make | 4 | ||||
-rw-r--r-- | ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt | 2 | ||||
-rw-r--r-- | ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt | 2 | ||||
-rw-r--r-- | ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt | 2 |
12 files changed, 23 insertions, 27 deletions
diff --git a/contrib/libs/libiconv/ya.make b/contrib/libs/libiconv/ya.make index 3b32d4e2266..6d6b1141b93 100644 --- a/contrib/libs/libiconv/ya.make +++ b/contrib/libs/libiconv/ya.make @@ -8,12 +8,20 @@ WITHOUT_LICENSE_TEXTS() NO_RUNTIME() -OPENSOURCE_EXPORT_REPLACEMENT( - CMAKE Iconv - CMAKE_TARGET Iconv::Iconv - CONAN libiconv/1.15 - CONAN_OPTIONS libiconv:shared=True -) +IF(OS_WINDOWS) + OPENSOURCE_EXPORT_REPLACEMENT( + CMAKE Iconv + CMAKE_TARGET Iconv::Iconv + CONAN libiconv/1.15 + CONAN_OPTIONS libiconv:shared=True + ) +ELSE() + # Opensource code is compatible with libc provided iconv API on major linux distributions and macos. + # * We prefere to avoid vendoring LGPL libraries in our opensouce project + # * Major distributions do not provide GNU libiconv as separate package + # * Shared lib dependencies from conan overcomplicate final artefacts distribution + DISABLE(OPENSOURCE_EXPORT) +ENDIF() IF (NOT EXPORT_CMAKE) diff --git a/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt b/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt index d593318062c..7ea20cee7a8 100644 --- a/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/libxml/CMakeLists.darwin-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(ZLIB REQUIRED) add_library(contrib-libs-libxml) @@ -26,7 +25,6 @@ target_include_directories(contrib-libs-libxml PRIVATE target_link_libraries(contrib-libs-libxml PUBLIC contrib-libs-cxxsupp yutil - Iconv::Iconv ZLIB::ZLIB library-cpp-charset ) diff --git a/contrib/libs/libxml/CMakeLists.linux-aarch64.txt b/contrib/libs/libxml/CMakeLists.linux-aarch64.txt index b607fa620b1..0fd7e29e196 100644 --- a/contrib/libs/libxml/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/libxml/CMakeLists.linux-aarch64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(ZLIB REQUIRED) add_library(contrib-libs-libxml) @@ -27,7 +26,6 @@ target_link_libraries(contrib-libs-libxml PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - Iconv::Iconv ZLIB::ZLIB library-cpp-charset ) diff --git a/contrib/libs/libxml/CMakeLists.linux-x86_64.txt b/contrib/libs/libxml/CMakeLists.linux-x86_64.txt index b607fa620b1..0fd7e29e196 100644 --- a/contrib/libs/libxml/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/libxml/CMakeLists.linux-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(ZLIB REQUIRED) add_library(contrib-libs-libxml) @@ -27,7 +26,6 @@ target_link_libraries(contrib-libs-libxml PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - Iconv::Iconv ZLIB::ZLIB library-cpp-charset ) diff --git a/library/cpp/charset/CMakeLists.darwin-x86_64.txt b/library/cpp/charset/CMakeLists.darwin-x86_64.txt index 2be179087cf..3dd7934c111 100644 --- a/library/cpp/charset/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/charset/CMakeLists.darwin-x86_64.txt @@ -6,13 +6,11 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) add_library(library-cpp-charset) target_link_libraries(library-cpp-charset PUBLIC contrib-libs-cxxsupp yutil - Iconv::Iconv ) target_sources(library-cpp-charset PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp diff --git a/library/cpp/charset/CMakeLists.linux-aarch64.txt b/library/cpp/charset/CMakeLists.linux-aarch64.txt index b2e97648f9b..ff528662af9 100644 --- a/library/cpp/charset/CMakeLists.linux-aarch64.txt +++ b/library/cpp/charset/CMakeLists.linux-aarch64.txt @@ -6,14 +6,12 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) add_library(library-cpp-charset) target_link_libraries(library-cpp-charset PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - Iconv::Iconv ) target_sources(library-cpp-charset PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp diff --git a/library/cpp/charset/CMakeLists.linux-x86_64.txt b/library/cpp/charset/CMakeLists.linux-x86_64.txt index b2e97648f9b..ff528662af9 100644 --- a/library/cpp/charset/CMakeLists.linux-x86_64.txt +++ b/library/cpp/charset/CMakeLists.linux-x86_64.txt @@ -6,14 +6,12 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) add_library(library-cpp-charset) target_link_libraries(library-cpp-charset PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - Iconv::Iconv ) target_sources(library-cpp-charset PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/charset/generated/cp_data.cpp diff --git a/library/cpp/charset/iconv.cpp b/library/cpp/charset/iconv.cpp index dc604c84920..0b6dbace9ef 100644 --- a/library/cpp/charset/iconv.cpp +++ b/library/cpp/charset/iconv.cpp @@ -5,20 +5,22 @@ using namespace NICONVPrivate; TDescriptor::TDescriptor(const char* from, const char* to) - : Descriptor_(libiconv_open(to, from)) + : Descriptor_(iconv_open(to, from)) , From_(from) , To_(to) { +#if defined(USE_ICONV_EXTENSIONS) if (!Invalid()) { int temp = 1; libiconvctl(Descriptor_, ICONV_SET_DISCARD_ILSEQ, &temp); } +#endif } TDescriptor::~TDescriptor() { if (!Invalid()) { - libiconv_close(Descriptor_); + iconv_close(Descriptor_); } } @@ -31,7 +33,7 @@ size_t NICONVPrivate::RecodeImpl(const TDescriptor& descriptor, const char* in, char* outPtr = out; size_t inSizeMod = inSize; size_t outSizeMod = outSize; - size_t res = libiconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod); + size_t res = iconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod); read = inSize - inSizeMod; written = outSize - outSizeMod; diff --git a/library/cpp/charset/ya.make b/library/cpp/charset/ya.make index 7809294b79e..f9fbbf9d09a 100644 --- a/library/cpp/charset/ya.make +++ b/library/cpp/charset/ya.make @@ -1,5 +1,9 @@ LIBRARY() +IF (NOT OPENSOURCE) + CXXFLAGS(-DUSE_ICONV_EXTENSIONS) +ENDIF() + SRCS( generated/cp_data.cpp generated/encrec_data.cpp diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt index f43f55d0d85..f5f1547a3d4 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(OpenSSL REQUIRED) add_subdirectory(interface) add_subdirectory(ut) @@ -123,7 +122,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-yql-utils contrib-libs-icu contrib-libs-libc_compat - Iconv::Iconv contrib-libs-libxml contrib-libs-lz4 OpenSSL::OpenSSL diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt index 44c4a449318..9fcdc948c52 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(OpenSSL REQUIRED) add_subdirectory(interface) add_subdirectory(ut) @@ -122,7 +121,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-yql-utils contrib-libs-icu contrib-libs-libc_compat - Iconv::Iconv contrib-libs-libxml contrib-libs-lz4 OpenSSL::OpenSSL diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt index a0109f09e98..2990900be3a 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -find_package(Iconv REQUIRED) find_package(OpenSSL REQUIRED) add_subdirectory(interface) add_subdirectory(ut) @@ -124,7 +123,6 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-yql-utils contrib-libs-icu contrib-libs-libc_compat - Iconv::Iconv contrib-libs-libxml contrib-libs-lz4 OpenSSL::OpenSSL |