Imported Upstream version 0.1.5
Aron Xu
12 years ago
3 | 3 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) |
4 | 4 | FIND_PACKAGE(Gettext REQUIRED) |
5 | 5 | FIND_PACKAGE(Fcitx 4.2.0 REQUIRED) |
6 | FIND_PACKAGE(Googlepinyin REQUIRED) | |
6 | 7 | FIND_PACKAGE(Libintl REQUIRED) |
7 | 8 | FIND_PACKAGE(Libiconv REQUIRED) |
9 | ||
10 | string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" FCITX4_MAJOR_VERSION "${FCITX4_VERSION}") | |
11 | string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" FCITX4_MINOR_VERSION "${FCITX4_VERSION}") | |
12 | string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" FCITX4_PATCH_VERSION "${FCITX4_VERSION}") | |
8 | 13 | |
9 | 14 | # uninstall target |
10 | 15 | configure_file( |
0 | # - Try to find the Googlepinyin libraries | |
1 | # Once done this will define | |
2 | # | |
3 | # GOOGLEPINYIN_FOUND - system has GOOGLEPINYIN | |
4 | # GOOGLEPINYIN_INCLUDE_DIR - the GOOGLEPINYIN include directory | |
5 | # GOOGLEPINYIN_LIBRARIES - GOOGLEPINYIN library | |
6 | # | |
7 | # Copyright (c) 2012 CSSlayer <wengxt@gmail.com> | |
8 | # | |
9 | # Redistribution and use is allowed according to the terms of the BSD license. | |
10 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. | |
11 | ||
12 | if(GOOGLEPINYIN_INCLUDE_DIR AND GOOGLEPINYIN_LIBRARIES) | |
13 | # Already in cache, be silent | |
14 | set(GOOGLEPINYIN_FIND_QUIETLY TRUE) | |
15 | endif(GOOGLEPINYIN_INCLUDE_DIR AND GOOGLEPINYIN_LIBRARIES) | |
16 | ||
17 | find_package(PkgConfig REQUIRED) | |
18 | pkg_check_modules(PC_LIBGOOGLEPINYIN "googlepinyin >= 1.0") | |
19 | ||
20 | find_path(GOOGLEPINYIN_MAIN_INCLUDE_DIR | |
21 | NAMES pinyinime.h | |
22 | HINTS ${PC_LIBGOOGLEPINYIN_INCLUDEDIR}) | |
23 | ||
24 | find_library(GOOGLEPINYIN_LIBRARIES | |
25 | NAMES googlepinyin | |
26 | HINTS ${PC_LIBGOOGLEPINYIN_LIBDIR}) | |
27 | ||
28 | set(GOOGLEPINYIN_INCLUDE_DIR "${GOOGLEPINYIN_MAIN_INCLUDE_DIR}") | |
29 | set(GOOGLEPINYIN_LIBDIR "${PC_LIBGOOGLEPINYIN_LIBDIR}") | |
30 | ||
31 | include(FindPackageHandleStandardArgs) | |
32 | find_package_handle_standard_args(GOOGLEPINYIN DEFAULT_MSG | |
33 | GOOGLEPINYIN_LIBRARIES | |
34 | GOOGLEPINYIN_MAIN_INCLUDE_DIR | |
35 | ) | |
36 | ||
37 | mark_as_advanced(GOOGLEPINYIN_MAIN_INCLUDE_DIR GOOGLEPINYIN_INCLUDE_DIR GOOGLEPINYIN_LIBRARIES GOOGLEPINYIN_LIBDIR) |
2 | 2 | #define DATADIR "@prefix@/share" |
3 | 3 | #define BINDIR "@bindir@" |
4 | 4 | #define LIBDIR "@libdir@" |
5 | #cmakedefine LIBICONV_SECOND_ARGUMENT_IS_CONST⏎ | |
5 | #cmakedefine LIBICONV_SECOND_ARGUMENT_IS_CONST | |
6 | #cmakedefine GOOGLEPINYIN_LIBDIR "@GOOGLEPINYIN_LIBDIR@" | |
7 | ||
8 | #define FCITX4_MAJOR_VERSION @FCITX4_MAJOR_VERSION@ | |
9 | #define FCITX4_MINOR_VERSION @FCITX4_MINOR_VERSION@ | |
10 | #define FCITX4_PATCH_VERSION @FCITX4_PATCH_VERSION@ | |
11 | ||
12 | #define FCITX_CHECK_VERSION(major,minor,micro) \ | |
13 | (FCITX4_MAJOR_VERSION > (major) || \ | |
14 | (FCITX4_MAJOR_VERSION == (major) && FCITX4_MINOR_VERSION > (minor)) || \ | |
15 | (FCITX4_MAJOR_VERSION == (major) && FCITX4_MINOR_VERSION == (minor) && \ | |
16 | FCITX4_PATCH_VERSION >= (micro))) |
0 | PKG_CHECK_MODULES(GOOGLEPINYIN "googlepinyin >= 1.0" REQUIRED ) | |
1 | ||
2 | 0 | set(FCITX_GOOGLEPINYIN_SRCS |
3 | 1 | eim.cpp |
4 | 2 | config.cpp |
6 | 4 | |
7 | 5 | include_directories( |
8 | 6 | ${PROJECT_BINARY_DIR} |
9 | ${GOOGLEPINYIN_INCLUDE_DIRS} | |
7 | ${GOOGLEPINYIN_INCLUDE_DIR} | |
10 | 8 | ${LIBINTL_INCLUDE_DIR} |
11 | 9 | ${LIBICONV_INCLUDE_DIR} |
12 | 10 | ${FCITX4_FCITX_INCLUDE_DIRS} |
14 | 12 | ${FCITX4_FCITX_UTILS_INCLUDE_DIRS} |
15 | 13 | ) |
16 | 14 | |
17 | link_directories(${GOOGLEPINYIN_LIBRARY_DIRS}) | |
18 | ||
19 | add_definitions( -DLOCALEDIR=\"${CMAKE_INSTALL_PREFIX}/share/locale\" ) | |
20 | ||
21 | 15 | fcitx_add_addon(fcitx-googlepinyin ${FCITX_GOOGLEPINYIN_SRCS}) |
22 | 16 | target_link_libraries(fcitx-googlepinyin |
23 | 17 | ${GOOGLEPINYIN_LIBRARIES} |
465 | 465 | if (fp) |
466 | 466 | fclose(fp); |
467 | 467 | |
468 | bool result = ime_pinyin::im_open_decoder(LIBDIR "/googlepinyin/data/dict_pinyin.dat", userDict); | |
468 | ||
469 | char* syspath = NULL; | |
470 | #if FCITX_CHECK_VERSION(4,2,1) | |
471 | /* portable detect here */ | |
472 | if (getenv("FCITXDIR")) { | |
473 | syspath = fcitx_utils_get_fcitx_path_with_filename("libdir", "sunpinyin/data"); | |
474 | } | |
475 | else | |
476 | #endif | |
477 | { | |
478 | syspath = strdup(GOOGLEPINYIN_LIBDIR "/googlepinyin/data/dict_pinyin.dat"); | |
479 | } | |
480 | bool result = ime_pinyin::im_open_decoder(syspath, userDict); | |
481 | free(syspath); | |
469 | 482 | |
470 | 483 | if (userDict) |
471 | 484 | free(userDict); |
524 | 537 | if (configDesc == NULL) |
525 | 538 | return false; |
526 | 539 | |
527 | FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "rt", NULL); | |
540 | FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "r", NULL); | |
528 | 541 | |
529 | 542 | if (!fp) |
530 | 543 | { |
549 | 562 | void SaveGooglePinyinConfig(FcitxGooglePinyinConfig* fs) |
550 | 563 | { |
551 | 564 | FcitxConfigFileDesc *configDesc = GetGooglePinyinConfigDesc(); |
552 | FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "wt", NULL); | |
565 | FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "w", NULL); | |
553 | 566 | FcitxConfigSaveConfigFileFp(fp, &fs->gconfig, configDesc); |
554 | 567 | if (fp) |
555 | 568 | fclose(fp); |