diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index f168d2a..ce5939a 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -14,12 +14,10 @@ jobs: strategy: fail-fast: false matrix: - compiler: [gcc, clang] + compiler: [gcc] include: - compiler: gcc cxx_compiler: g++ - - compiler: clang - cxx_compiler: clang++ env: CC: ${{ matrix.compiler }} CXX: ${{ matrix.cxx_compiler }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 728c157..6c8ae2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,8 @@ include(cmake/Macros.cmake) include(GNUInstallDirs) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_FLAGS "-funsigned-char ${CMAKE_CXX_FLAGS}") set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -Wl,--as-needed ${CMAKE_MODULE_LINKER_FLAGS}") @@ -22,23 +24,9 @@ set(MOZC_SOURCE_DIR ${PROJECT_SOURCE_DIR}/mozc/src) include_directories(mozc/src) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(MOZC_LIBRARY_TYPE STATIC) -# set(MOZC_LIBRARY_TYPE SHARED) # Uncomment to test dependency and missing symbols. - -add_library(protocol ${MOZC_LIBRARY_TYPE} - mozc/src/protocol/commands.proto - mozc/src/protocol/candidate_window.proto - mozc/src/protocol/config.proto - mozc/src/protocol/engine_builder.proto - mozc/src/protocol/user_dictionary_storage.proto - mozc/src/protocol/state.proto -) -target_include_directories(protocol PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) -target_link_libraries(protocol PUBLIC protobuf::libprotobuf) -protobuf_generate(TARGET protocol LANGUAGE cpp - IMPORT_DIRS mozc/src) - -mozc_library(protocol/segmenter_data.proto) +set(MOZC_LIBRARY_TYPE SHARED) # Uncomment to test dependency and missing symbols. +add_subdirectory(protocol) add_subdirectory(base) add_subdirectory(config) add_subdirectory(composer) @@ -63,7 +51,7 @@ add_executable(mozc_server target_include_directories(mozc_server PRIVATE mozc/src) target_link_libraries(mozc_server - protocol + mozc::protocol::protocol mozc::base::system_util mozc::base::run_level mozc::base::init_mozc @@ -89,7 +77,7 @@ set_target_properties(fcitx5-mozc PROPERTIES PREFIX "") target_link_libraries(fcitx5-mozc Fcitx5::Core PkgConfig::Fcitx5Module - protocol + mozc::protocol::protocol mozc::base::vlog mozc::base::process mozc::base::util diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index e25ebfd..4c29244 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -1,2 +1,2 @@ -mozc_library(server_launcher.cc DEPENDS protocol absl::log mozc::ipc::ipc mozc::ipc::named_event mozc::base::system_util mozc::base::vlog mozc::base::process) -mozc_library(client.cc DEPENDS protocol mozc::base::process mozc::client::server_launcher mozc::session::key_info_util mozc::base::run_level) +mozc_library(server_launcher.cc DEPENDS mozc::protocol::protocol absl::log mozc::ipc::ipc mozc::ipc::named_event mozc::base::system_util mozc::base::vlog mozc::base::process) +mozc_library(client.cc DEPENDS mozc::protocol::protocol mozc::base::process mozc::client::server_launcher mozc::session::key_info_util mozc::base::run_level) diff --git a/cmake/Macros.cmake b/cmake/Macros.cmake index 7a8a085..03b00f9 100644 --- a/cmake/Macros.cmake +++ b/cmake/Macros.cmake @@ -67,9 +67,9 @@ set(INC ${arg_SOURCES}) list(FILTER INC INCLUDE REGEX "\.(inc|h)") if (INC) if (LIBRARY_TYPE STREQUAL INTERFACE) - target_include_directories(${TGT} INTERFACE ${CMAKE_CURRENT_BINARY_DIR}) + target_include_directories(${TGT} INTERFACE ${PROJECT_BINARY_DIR}) else() - target_include_directories(${TGT} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) + target_include_directories(${TGT} PUBLIC ${PROJECT_BINARY_DIR}) endif() endif() diff --git a/composer/CMakeLists.txt b/composer/CMakeLists.txt index 19b8b3f..56be4fa 100644 --- a/composer/CMakeLists.txt +++ b/composer/CMakeLists.txt @@ -10,7 +10,7 @@ mozc_library(composer.cc key_parser.cc key_event_util.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::strings mozc::base::util mozc::base::vlog diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index a1767b2..1b14a6f 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -1,5 +1,5 @@ mozc_library(config_handler.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::vlog mozc::base::clock mozc::base::version @@ -9,7 +9,7 @@ mozc_library(config_handler.cc DEPENDS mozc::base::system_util) mozc_library(stats_config_util.cc DEPENDS mozc::base::singleton absl::base) mozc_library(character_form_manager.cc DEPENDS - protocol + mozc::protocol::protocol absl::raw_hash_set absl::log absl::check diff --git a/converter/CMakeLists.txt b/converter/CMakeLists.txt index 3557ff8..c1bde49 100644 --- a/converter/CMakeLists.txt +++ b/converter/CMakeLists.txt @@ -1,22 +1,24 @@ -mozc_library(history_reconstructor.cc DEPENDS mozc::dictionary::pos_matcher mozc::base::util mozc::converter::segments) +mozc_library(history_reconstructor.cc DEPENDS mozc::protocol::protocol mozc::dictionary::pos_matcher mozc::base::util mozc::converter::segments) mozc_library(segments.cc DEPENDS absl::log absl::check mozc::base::vlog) -mozc_library(reverse_converter.cc DEPENDS protocol mozc::converter::segments mozc::base::util mozc::composer::composer) +mozc_library(reverse_converter.cc DEPENDS mozc::protocol::protocol mozc::converter::segments mozc::base::util mozc::composer::composer) mozc_library(converter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::converter::history_reconstructor mozc::converter::reverse_converter mozc::dictionary::suppression_dictionary mozc::usage_stats::usage_stats) mozc_library(key_corrector.cc DEPENDS - protocol - mozc::base::util mozc::base::vlog) + mozc::protocol::protocol + mozc::base::util + mozc::base::vlog) mozc_library(lattice.cc DEPENDS mozc::base::singleton absl::log absl::check) mozc_library(node_list_builder.cc DEPENDS - protocol) + mozc::protocol::protocol +) mozc_library(candidate_filter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::converter::segments mozc::base::vlog mozc::base::number_util @@ -24,13 +26,13 @@ mozc_library(candidate_filter.cc DEPENDS mozc::prediction::suggestion_filter mozc::dictionary::suppression_dictionary) mozc_library(nbest_generator.cc DEPENDS - protocol + mozc::protocol::protocol mozc::converter::segmenter mozc::converter::connector mozc::converter::candidate_filter mozc::converter::segments) mozc_library(immutable_converter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::util mozc::converter::key_corrector mozc::converter::lattice diff --git a/data_manager/oss/CMakeLists.txt b/data_manager/oss/CMakeLists.txt index 63c7f4d..844d5e2 100644 --- a/data_manager/oss/CMakeLists.txt +++ b/data_manager/oss/CMakeLists.txt @@ -30,5 +30,4 @@ mozc_executable(gen_oss_segmenter_bitarray_main.cc mozc::converter::gen_segmenter_bitarray ) add_dependencies(data_manager-oss-gen_oss_segmenter_bitarray_main segmenter_inl) - -target_include_directories(data_manager-oss-gen_oss_segmenter_bitarray_main PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories(data_manager-oss-gen_oss_segmenter_bitarray_main PRIVATE ${PROJECT_BINARY_DIR}) diff --git a/dictionary/CMakeLists.txt b/dictionary/CMakeLists.txt index 3607da2..3f5ee5e 100644 --- a/dictionary/CMakeLists.txt +++ b/dictionary/CMakeLists.txt @@ -9,11 +9,11 @@ add_custom_target(pos_matcher_impl DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pos_match mozc_library(pos_matcher.h) target_include_directories(dictionary-pos_matcher INTERFACE ${PROJECT_BINARY_DIR}) add_dependencies(dictionary-pos_matcher pos_matcher_impl) -mozc_library(user_dictionary_util.cc DEPENDS protocol mozc::base::vlog mozc::base::strings mozc::base::config_file_stream) -mozc_library(user_dictionary_storage.cc DEPENDS protocol mozc::dictionary::user_dictionary_util mozc::base::process_mutex) +mozc_library(user_dictionary_util.cc DEPENDS mozc::protocol::protocol mozc::base::vlog mozc::base::strings mozc::base::config_file_stream) +mozc_library(user_dictionary_storage.cc DEPENDS mozc::protocol::protocol mozc::dictionary::user_dictionary_util mozc::base::process_mutex) mozc_library(user_dictionary_session_handler.cc DEPENDS absl::log absl::random_random mozc::dictionary::user_dictionary_session) mozc_library(user_dictionary_session.cc DEPENDS - protocol + mozc::protocol::protocol mozc::dictionary::user_dictionary_util mozc::dictionary::user_dictionary_importer mozc::dictionary::user_dictionary_storage) @@ -27,7 +27,7 @@ mozc_python_gen_file(dictionary/gen_pos_map.py ) add_custom_target(pos_map DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/pos_map.inc) mozc_library(user_dictionary_importer.cc - DEPENDS protocol mozc::base::mmap mozc::base::strings mozc::base::vlog mozc::base::number_util mozc::base::hash mozc::dictionary::user_dictionary_util) + DEPENDS mozc::protocol::protocol mozc::base::mmap mozc::base::strings mozc::base::vlog mozc::base::number_util mozc::base::hash mozc::dictionary::user_dictionary_util) add_dependencies(dictionary-user_dictionary_importer pos_map) target_include_directories(dictionary-user_dictionary_importer PRIVATE ${PROJECT_BINARY_DIR}) mozc_library(suppression_dictionary.cc DEPENDS @@ -58,7 +58,7 @@ mozc_library(system/system_dictionary.cc system/value_dictionary.cc system/codec.cc DEPENDS - protocol + mozc::protocol::protocol mozc::dictionary::pos_matcher mozc::base::vlog mozc::base::singleton @@ -77,25 +77,26 @@ mozc_library(system/system_dictionary_builder.cc ) mozc_library(dictionary_impl.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::util mozc::dictionary::suppression_dictionary + mozc::dictionary::pos_matcher ) mozc_library(suffix_dictionary.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::container::serialized_string_array ) mozc_library(single_kanji_dictionary.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::container::serialized_string_array mozc::data_manager::serialized_dictionary mozc::base::text_normalizer ) mozc_library(user_dictionary.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::vlog mozc::base::hash mozc::dictionary::user_dictionary_util diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index f06ef97..739836f 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -1,8 +1,8 @@ mozc_library(minimal_converter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::converter::segments) mozc_library(modules.cc DEPENDS - protocol + mozc::protocol::protocol mozc::converter::connector mozc::converter::segmenter mozc::prediction::suggestion_filter @@ -16,7 +16,7 @@ mozc_library(data_loader.cc DEPENDS mozc::engine::modules mozc::data_manager::data_manager) mozc_library(engine.cc DEPENDS - protocol + mozc::protocol::protocol mozc::prediction::user_history_predictor mozc::converter::converter mozc::engine::minimal_converter diff --git a/gui/config_dialog/CMakeLists.txt b/gui/config_dialog/CMakeLists.txt index 549dec3..68e514d 100644 --- a/gui/config_dialog/CMakeLists.txt +++ b/gui/config_dialog/CMakeLists.txt @@ -49,7 +49,7 @@ add_library(config_dialog ${MOZC_LIBRARY_TYPE} target_include_directories(config_dialog PRIVATE ${MOZC_SOURCE_DIR} ${PROJECT_BINARY_DIR}) target_link_libraries(config_dialog Qt6::Widgets - protocol + mozc::protocol::protocol mozc::base::system_util mozc::base::config_file_stream mozc::session::internal::keymap diff --git a/gui/dictionary_tool/CMakeLists.txt b/gui/dictionary_tool/CMakeLists.txt index 0a5c3dd..11a1603 100644 --- a/gui/dictionary_tool/CMakeLists.txt +++ b/gui/dictionary_tool/CMakeLists.txt @@ -30,7 +30,7 @@ add_library(dictionary_tool ${MOZC_LIBRARY_TYPE} target_include_directories(dictionary_tool PRIVATE ${PROJECT_SOURCE_DIR}/mozc/src) target_link_libraries(dictionary_tool Qt6::Widgets - protocol + mozc::protocol::protocol mozc::base::system_util mozc::base::util mozc::dictionary::user_dictionary_storage diff --git a/gui/word_register_dialog/CMakeLists.txt b/gui/word_register_dialog/CMakeLists.txt index eac3cd7..0d8a3f6 100644 --- a/gui/word_register_dialog/CMakeLists.txt +++ b/gui/word_register_dialog/CMakeLists.txt @@ -20,7 +20,7 @@ add_library(word_register_dialog ${MOZC_LIBRARY_TYPE} target_include_directories(word_register_dialog PRIVATE ${PROJECT_SOURCE_DIR}/mozc/src ${PROJECT_BINARY_DIR}) target_link_libraries(word_register_dialog Qt6::Widgets - protocol + mozc::protocol::protocol mozc::gui::base mozc::dictionary::user_dictionary_util mozc::dictionary::user_dictionary_storage diff --git a/prediction/CMakeLists.txt b/prediction/CMakeLists.txt index 8a90f69..8d13755 100644 --- a/prediction/CMakeLists.txt +++ b/prediction/CMakeLists.txt @@ -32,7 +32,7 @@ mozc_library(number_decoder.cc DEPENDS mozc::base::util ) mozc_library(dictionary_prediction_aggregator.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::util mozc::base::number_util mozc::converter::segments @@ -45,7 +45,7 @@ mozc_library(result.cc DEPENDS absl::log ) mozc_library(dictionary_predictor.cc DEPENDS - protocol + mozc::protocol::protocol mozc::composer::composer mozc::converter::segments mozc::converter::connector @@ -56,7 +56,7 @@ mozc_library(dictionary_predictor.cc DEPENDS mozc::dictionary::single_kanji_dictionary mozc::prediction::dictionary_prediction_aggregator) mozc_library(predictor.cc DEPENDS - protocol + mozc::protocol::protocol mozc::composer::composer mozc::converter::segments ) diff --git a/protocol/CMakeLists.txt b/protocol/CMakeLists.txt new file mode 100644 index 0000000..6a60ed4 --- /dev/null +++ b/protocol/CMakeLists.txt @@ -0,0 +1,10 @@ +mozc_library(protocol PROTO SOURCES + commands.proto + candidate_window.proto + config.proto + engine_builder.proto + user_dictionary_storage.proto + state.proto +) + +mozc_library(segmenter_data.proto) diff --git a/rewriter/CMakeLists.txt b/rewriter/CMakeLists.txt index 7828b7f..2321edf 100644 --- a/rewriter/CMakeLists.txt +++ b/rewriter/CMakeLists.txt @@ -45,7 +45,7 @@ mozc_library(rewriter.cc usage_rewriter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::base::util mozc::base::version mozc::base::file_util diff --git a/session/CMakeLists.txt b/session/CMakeLists.txt index a42b293..1fe5c6f 100644 --- a/session/CMakeLists.txt +++ b/session/CMakeLists.txt @@ -1,20 +1,29 @@ -mozc_library(key_info_util.cc DEPENDS protocol mozc::composer::composer mozc::session::internal::keymap) -mozc_library(internal/keymap.cc DEPENDS protocol mozc::composer::composer) -mozc_library(session_usage_observer.cc DEPENDS protocol mozc::usage_stats::usage_stats mozc::config::stats_config_util mozc::base::clock mozc::base::vlog) -mozc_library(session_usage_stats_util.cc DEPENDS protocol mozc::base::util mozc::usage_stats::usage_stats) -mozc_library(session_observer_handler.cc DEPENDS protocol) +mozc_library(key_info_util.cc DEPENDS mozc::protocol::protocol mozc::composer::composer mozc::session::internal::keymap) +mozc_library(internal/keymap.cc DEPENDS mozc::protocol::protocol mozc::composer::composer) +mozc_library(session_usage_observer.cc DEPENDS + mozc::protocol::protocol + mozc::usage_stats::usage_stats + mozc::config::stats_config_util + mozc::base::clock + mozc::base::vlog) +mozc_library(session_usage_stats_util.cc DEPENDS + mozc::protocol::protocol + mozc::base::util + mozc::usage_stats::usage_stats) +mozc_library(session_observer_handler.cc DEPENDS + mozc::protocol::protocol) mozc_library(internal/candidate_list.cc DEPENDS absl::raw_hash_set absl::log mozc::base::hash) mozc_library(internal/session_output.cc DEPENDS - protocol + mozc::protocol::protocol mozc::session::internal::candidate_list mozc::base::text_normalizer mozc::converter::segments mozc::composer::composer) mozc_library(session_converter.cc DEPENDS - protocol + mozc::protocol::protocol mozc::usage_stats::usage_stats mozc::session::internal::candidate_list mozc::converter::segments @@ -35,7 +44,7 @@ mozc_library(session.cc internal/ime_context.cc internal/key_event_transformer.cc DEPENDS - protocol + mozc::protocol::protocol mozc::session::session_converter mozc::session::session_usage_stats_util mozc::usage_stats::usage_stats @@ -47,7 +56,7 @@ mozc_library(session_handler.cc DEPENDS absl::raw_hash_set absl::random_random absl::flags - protocol + mozc::protocol::protocol mozc::config::config_handler mozc::usage_stats::usage_stats mozc::config::character_form_manager @@ -63,7 +72,7 @@ mozc_library(session_server.cc DEPENDS mozc::data_manager::oss::oss_data_manager mozc::session::session_usage_observer mozc::session::session_handler - protocol + mozc::protocol::protocol mozc::ipc::named_event mozc::ipc::ipc mozc::ipc::ipc_path_manager diff --git a/storage/CMakeLists.txt b/storage/CMakeLists.txt index 90ee369..686f650 100644 --- a/storage/CMakeLists.txt +++ b/storage/CMakeLists.txt @@ -1,4 +1,9 @@ -mozc_library(tiny_storage.cc DEPENDS absl::log mozc::base::file_util mozc::base::file_stream mozc::base::vlog) +mozc_library(tiny_storage.cc DEPENDS + absl::log + absl::check + mozc::base::file_util + mozc::base::file_stream + mozc::base::vlog) mozc_library(registry.cc DEPENDS absl::log mozc::storage::tiny_storage mozc::base::system_util mozc::base::singleton) mozc_library(lru_storage.cc DEPENDS absl::raw_hash_set absl::statusor absl::log mozc::base::file_stream mozc::base::hash mozc::base::clock mozc::base::mmap mozc::base::vlog mozc::base::file_util) mozc_library(louds/louds.cc diff --git a/usage_stats/CMakeLists.txt b/usage_stats/CMakeLists.txt index badd6a4..7246a93 100644 --- a/usage_stats/CMakeLists.txt +++ b/usage_stats/CMakeLists.txt @@ -10,7 +10,9 @@ add_custom_target(usage_state_list mozc_library(usage_stats.proto) mozc_library(usage_stats_uploader.cc DEPENDS mozc::storage::registry absl::strings) -mozc_library(usage_stats.cc - DEPENDS mozc::usage_stats::usage_stats_uploader mozc::base::vlog mozc::storage::registry mozc::usage_stats::usage_stats_pb) +mozc_library(usage_stats.cc DEPENDS + mozc::usage_stats::usage_stats_uploader + mozc::base::vlog mozc::storage::registry + mozc::usage_stats::usage_stats_pb) target_include_directories(usage_stats-usage_stats PRIVATE ${PROJECT_BINARY_DIR}) add_dependencies(usage_stats-usage_stats usage_state_list)