Skip to content

Commit 39ced92

Browse files
authored
Seems kenlm can be built with C++20, remove the CXX_STANDARD for kenlm (#107)
kenlm was compiled with C++11 while others using C++20 think the std::string is violating odr. Ref: https://bugs.gentoo.org/962546
1 parent 7d0d028 commit 39ced92

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

src/libime/core/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ target_include_directories(kenlm PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE
1414
target_compile_definitions(kenlm PUBLIC -DKENLM_MAX_ORDER=3 PRIVATE -DNDEBUG)
1515
target_link_libraries(kenlm PUBLIC Boost::boost PkgConfig::ZSTD)
1616
set_target_properties(kenlm PROPERTIES
17-
CXX_STANDARD 11
1817
POSITION_INDEPENDENT_CODE ON)
1918

19+
include(CheckCXXSymbolExists)
20+
check_cxx_symbol_exists(_LIBCPP_VERSION version LIBCPP)
21+
if(LIBCPP)
22+
target_compile_definitions(kenlm PUBLIC -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)
23+
endif()
24+
2025
if(UNIX)
2126
check_library_exists(rt clock_gettime "clock_gettime from librt" HAVE_CLOCKGETTIME_RT)
2227
if (HAVE_CLOCKGETTIME_RT)

0 commit comments

Comments
 (0)