1
0
Fork 0
cmake_helpers/external/cld3/CMakeLists.txt
Klemens Nanni 085086856c Fix tdesktop 4.3.4 cld3 bundle build with system protobuf
```
.../Telegram/ThirdParty/cld3/build/gen/cld_3/protos/sentence.pb.h:10:10: fatal error: 'google/protobuf/port_def.inc' file not found
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
2022-12-08 06:41:46 +04:00

113 lines
2.9 KiB
CMake

# This file is part of Desktop App Toolkit,
# a set of libraries for developing nice desktop applications.
#
# For license and copyright information please follow this link:
# https://github.com/desktop-app/legal/blob/master/LEGAL
add_library(external_cld3 INTERFACE IMPORTED GLOBAL)
add_library(desktop-app::external_cld3 ALIAS external_cld3)
add_library(external_cld3_bundled STATIC)
init_target(external_cld3_bundled "(external)")
set(cld3_loc ${third_party_loc}/cld3)
set(cld3_src ${cld3_loc}/src)
set(gen_loc ${cld3_loc}/build/gen)
set(gen_dst ${gen_loc}/cld_3/protos)
if (DESKTOP_APP_USE_PACKAGED)
find_package(Protobuf)
if (NOT Protobuf_FOUND)
find_package(protobuf REQUIRED CONFIG)
endif()
set(protoc_executable protobuf::protoc)
set(protobuf_lib protobuf::libprotobuf-lite)
elseif (WIN32)
set(build_loc ${libs_loc}/protobuf/build/$<IF:$<CONFIG:Debug>,Debug,Release>)
set(protoc_executable ${build_loc}/protoc.exe)
set(protobuf_lib ${build_loc}/libprotobuf-lite.lib)
else()
set(protoc_executable ${libs_loc}/protobuf/build/protoc)
set(protobuf_lib ${libs_loc}/protobuf/build/libprotobuf-lite.a)
if (LINUX)
target_compile_options(external_cld3_bundled PRIVATE -Wno-implicit-fallthrough)
endif()
endif()
if (PROTOBUF_PROTOC_EXECUTABLE)
set(protoc_executable ${PROTOBUF_PROTOC_EXECUTABLE})
endif()
include(generate_protobuf.cmake)
function(generate protobuf_name)
generate_single_protobuf(
external_cld3_bundled
${gen_dst}
${protobuf_name}
${protoc_executable})
endfunction()
generate(feature_extractor.proto)
generate(sentence.proto)
generate(task_spec.proto)
nice_target_sources(external_cld3_bundled ${cld3_src}
PRIVATE
feature_extractor.proto
sentence.proto
task_spec.proto
base.cc
embedding_feature_extractor.cc
embedding_network.cc
feature_extractor.cc
feature_extractor.h
feature_types.cc
fml_parser.cc
language_identifier_features.cc
lang_id_nn_params.cc
nnet_language_identifier.cc
registry.cc
relevant_script_feature.cc
sentence_features.cc
task_context.cc
task_context_params.cc
unicodetext.cc
utils.cc
workspace.cc
script_span/generated_entities.cc
script_span/getonescriptspan.cc
script_span/getonescriptspan.h
script_span/getonescriptspan_test.cc
script_span/utf8statetable.cc
script_span/offsetmap.cc
script_span/text_processing.cc
script_span/text_processing.h
script_span/fixunicodevalue.cc
)
target_include_directories(external_cld3_bundled
PUBLIC
${cld3_src}
${gen_loc}
)
if (NOT DESKTOP_APP_USE_PACKAGED)
target_include_directories(external_cld3_bundled
PUBLIC
${libs_loc}/protobuf/src
${libs_loc}/protobuf/third_party/abseil-cpp
)
endif()
target_link_libraries(external_cld3_bundled
PRIVATE
${protobuf_lib}
)
target_link_libraries(external_cld3
INTERFACE
external_cld3_bundled
)