Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/devel' into fe-443
Browse files Browse the repository at this point in the history
  • Loading branch information
pluma4345 committed Apr 23, 2024
2 parents 4829797 + 284a9ca commit 2ea2dcb
Show file tree
Hide file tree
Showing 6,431 changed files with 4,903,111 additions and 745 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
25 changes: 20 additions & 5 deletions 3rdParty/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,17 @@ target_include_directories(v8_interface SYSTEM INTERFACE ${V8_INCLUDE_DIR})

set(ICU_DT "${ICU_DT}" PARENT_SCOPE)
set(ICU_DT_DEST "${ICU_DT_DEST}" PARENT_SCOPE)
set(ICU_LIBRARY_DIR "${ICU_LIBRARY_DIR}" PARENT_SCOPE)
set(ICU_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/${V8_SUB_DIR}/third_party/icu/")

set(V8_INTERNAL_INCLUDE_DIR ${V8_INTERNAL_INCLUDE_DIR} PARENT_SCOPE)

################################################################################
## Legacy ICU V 64.2 for index backwards compatibility
################################################################################

add_subdirectory(icu-legacy)
set(ICU64_LIBS "${ICU64_LIBS}" PARENT_SCOPE)
set(ICU64_INCLUDE_DIR "${ICU64_INCLUDE_DIR}" PARENT_SCOPE)

################################################################################
## Google Abseil
################################################################################
Expand Down Expand Up @@ -146,6 +152,18 @@ add_subdirectory(velocypack)
## IResearch
################################################################################

## Make IResearch use ICU V 64.2 for index backwards compatibility
set(ICU_FOUND TRUE)
set(ICU_INCLUDE_DIR ${ICU64_INCLUDE_DIR})
set(ICU_LIBRARY_DIR ${ICU64_LIBRARY_DIR})
set(ICU_STATIC_LIBS ${ICU64_LIBS})
# add necessary defines for ICU. this will suffix all included ICU functions
# and the ICU namespace with _64_64
add_definitions("-DU_HAVE_LIB_SUFFIX=1")
add_definitions("-DU_LIB_SUFFIX_C_NAME=_64")
add_definitions("-DIRESEARCH_ICU_NAMESPACE=icu_64_64")
set(IRESEARCH_EXTERNAL_DEPENDENCIES "iculegacy_build")

add_library(boost-static IMPORTED STATIC)
set_target_properties(boost-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/boost/${BOOST_VERSION}"
Expand All @@ -155,8 +173,6 @@ set_target_properties(boost-static PROPERTIES
# explicitly set since suppressing Boost search
set(Boost_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/boost/${BOOST_VERSION}")

set(ICU_FOUND TRUE) # ICU built from source in 3rdParty directory

if(NOT PERL_FOUND)
set(PERL_FOUND TRUE) # suppress error for Perl not-found

Expand All @@ -167,7 +183,6 @@ if(NOT PERL_FOUND)
endif()

set(USE_IPO ${IPO_ENABLED})
set(ICU_STATIC_LIBS ${ICU_LIBS})
set(LZ4_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/lz4")
set(LZ4_INCLUDE_DIR "${LZ4_ROOT}/lib")
set(SNOWBALL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/snowball")
Expand Down
78 changes: 78 additions & 0 deletions 3rdParty/icu-legacy/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# -*- mode: CMAKE; -*-

project(icu64 C)
include(ExternalProject)

set(ICU64 "64.2")
set(ICU64_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/icu64")
set(ICU64_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/icu64")

# copy files into binary directory
file(
COPY
"${ICU64_SOURCE_DIR}"
DESTINATION
"${CMAKE_CURRENT_BINARY_DIR}"
)
file(
COPY
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
DESTINATION
"${CMAKE_CURRENT_BINARY_DIR}"
)

# generate external project
set(ICU64_LIBS
"${CMAKE_CURRENT_BINARY_DIR}/lib/libicui18n64.a"
"${CMAKE_CURRENT_BINARY_DIR}/lib/libicuuc64.a"
"${CMAKE_CURRENT_BINARY_DIR}/lib/libicudata64.a"
)

# suppress tons of warnings caused by non-overridden methods in ICU source
set(ICU_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
string(REGEX REPLACE "-Wsuggest-override" "" ICU_CXX_FLAGS ${ICU_CXX_FLAGS})

ExternalProject_Add(
iculegacy_build
SOURCE_DIR
${ICU64_SOURCE_DIR}
BINARY_DIR
${ICU64_BINARY_DIR}
PREFIX
${ICU64_BINARY_DIR}
CONFIGURE_COMMAND
./configure
CC=${CMAKE_C_COMPILER}
CXX=${CMAKE_CXX_COMPILER}
CFLAGS=${CMAKE_C_FLAGS}
CXXFLAGS=${ICU_CXX_FLAGS}
CPPFLAGS=${CMAKE_CPPFLAGS}
--prefix=${CMAKE_CURRENT_BINARY_DIR}
--with-library-suffix=64
--with-data-packaging=static
--enable-static
--disable-samples
--disable-tests
--disable-dyload
--disable-shared
BUILD_COMMAND
$(MAKE)
INSTALL_COMMAND
${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/lib
&& ${CMAKE_COMMAND} -E copy ${ICU64_BINARY_DIR}/lib/libicui18n64.a ${CMAKE_CURRENT_BINARY_DIR}/lib
&& ${CMAKE_COMMAND} -E copy ${ICU64_BINARY_DIR}/lib/libicuuc64.a ${CMAKE_CURRENT_BINARY_DIR}/lib
&& ${CMAKE_COMMAND} -E copy ${ICU64_BINARY_DIR}/lib/libicudata64.a ${CMAKE_CURRENT_BINARY_DIR}/lib
)

# copy ICU public header files into build directory
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/unicode)

file(GLOB ICU_COMMON_HEADER_FILES "${ICU64_SOURCE_DIR}/common/unicode/*.h")
file(COPY ${ICU_COMMON_HEADER_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/unicode)

file(GLOB ICU_I18N_HEADER_FILES "${ICU64_SOURCE_DIR}/common/i18n/*.h")
file(COPY ${ICU_I18N_HEADER_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/unicode)

set(ICU64_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include" PARENT_SCOPE)
set(ICU64_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/lib" PARENT_SCOPE)
set(ICU64_LIBS "${ICU64_LIBS}" PARENT_SCOPE)

0 comments on commit 2ea2dcb

Please sign in to comment.