From ab7e69e10f2c291b4761be09270590fdc5cbdfb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=85=E6=88=8E=E6=B0=8F?= Date: Mon, 18 Mar 2024 14:29:24 +0800 Subject: [PATCH] build(rime_table_decompiler): static linking on windows --- tools/CMakeLists.txt | 48 +++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index ab64c52a1..090a0fc03 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -11,24 +11,11 @@ set(rime_api_console_src "rime_api_console.cc") add_executable(rime_api_console ${rime_api_console_src}) target_link_libraries(rime_api_console ${rime_console_deps}) -set(rime_patch_src "rime_patch.cc") -add_executable(rime_patch ${rime_patch_src}) -target_link_libraries(rime_patch - ${rime_library} - ${rime_levers_library}) - set(rime_console_src "rime_console.cc") add_executable(rime_console ${rime_console_src}) target_compile_definitions(rime_console PRIVATE RIME_IMPORTS) target_link_libraries(rime_console ${rime_console_deps}) -set(rime_dict_manager_src "rime_dict_manager.cc") -add_executable(rime_dict_manager ${rime_dict_manager_src}) -target_link_libraries(rime_dict_manager - ${rime_library} - ${rime_dict_library} - ${rime_levers_library}) - set(rime_deployer_src "rime_deployer.cc") add_executable(rime_deployer ${rime_deployer_src}) target_compile_definitions(rime_deployer PRIVATE RIME_IMPORTS) @@ -37,24 +24,35 @@ target_link_libraries(rime_deployer ${rime_dict_library} ${rime_levers_library}) -set(rime_table_decompiler_src - "rime_table_decompiler.cc" - ${CMAKE_SOURCE_DIR}/src/rime/dict/table.cc - ${CMAKE_SOURCE_DIR}/src/rime/dict/mapped_file.cc - ${CMAKE_SOURCE_DIR}/src/rime/dict/string_table.cc - ${CMAKE_SOURCE_DIR}/src/rime/dict/vocabulary.cc - ) -add_executable(rime_table_decompiler ${rime_table_decompiler_src}) -target_link_libraries(rime_table_decompiler +set(rime_dict_manager_src "rime_dict_manager.cc") +add_executable(rime_dict_manager ${rime_dict_manager_src}) +target_link_libraries(rime_dict_manager ${rime_library} - ${rime_dict_library}) + ${rime_dict_library} + ${rime_levers_library}) + +set(rime_patch_src "rime_patch.cc") +add_executable(rime_patch ${rime_patch_src}) +target_link_libraries(rime_patch + ${rime_library} + ${rime_levers_library}) install(TARGETS rime_deployer DESTINATION ${BIN_INSTALL_DIR}) install(TARGETS rime_dict_manager DESTINATION ${BIN_INSTALL_DIR}) -install(TARGETS rime_table_decompiler DESTINATION ${BIN_INSTALL_DIR}) - install(TARGETS rime_patch DESTINATION ${BIN_INSTALL_DIR}) +# do not work with Windows DLL; interfaces to dict are missing DLL export. +if(NOT WIN32 OR NOT BUILD_SHARED_LIBS) + set(rime_table_decompiler_src "rime_table_decompiler.cc") + add_executable(rime_table_decompiler ${rime_table_decompiler_src}) + target_compile_definitions(rime_deployer PRIVATE RIME_IMPORTS) + target_link_libraries(rime_table_decompiler + ${rime_library} + ${rime_dict_library}) + + install(TARGETS rime_table_decompiler DESTINATION ${BIN_INSTALL_DIR}) +endif() + file(COPY ${PROJECT_SOURCE_DIR}/data/minimal/default.yaml DESTINATION ${EXECUTABLE_OUTPUT_PATH}) file(COPY ${PROJECT_SOURCE_DIR}/data/minimal/symbols.yaml