Codebase list fcitx-googlepinyin / 57a6646
Imported Upstream version 0.1.5 Aron Xu 12 years ago
5 changed file(s) with 72 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
33 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
44 FIND_PACKAGE(Gettext REQUIRED)
55 FIND_PACKAGE(Fcitx 4.2.0 REQUIRED)
6 FIND_PACKAGE(Googlepinyin REQUIRED)
67 FIND_PACKAGE(Libintl REQUIRED)
78 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}")
813
914 # uninstall target
1015 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)
22 #define DATADIR "@prefix@/share"
33 #define BINDIR "@bindir@"
44 #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
20 set(FCITX_GOOGLEPINYIN_SRCS
31 eim.cpp
42 config.cpp
64
75 include_directories(
86 ${PROJECT_BINARY_DIR}
9 ${GOOGLEPINYIN_INCLUDE_DIRS}
7 ${GOOGLEPINYIN_INCLUDE_DIR}
108 ${LIBINTL_INCLUDE_DIR}
119 ${LIBICONV_INCLUDE_DIR}
1210 ${FCITX4_FCITX_INCLUDE_DIRS}
1412 ${FCITX4_FCITX_UTILS_INCLUDE_DIRS}
1513 )
1614
17 link_directories(${GOOGLEPINYIN_LIBRARY_DIRS})
18
19 add_definitions( -DLOCALEDIR=\"${CMAKE_INSTALL_PREFIX}/share/locale\" )
20
2115 fcitx_add_addon(fcitx-googlepinyin ${FCITX_GOOGLEPINYIN_SRCS})
2216 target_link_libraries(fcitx-googlepinyin
2317 ${GOOGLEPINYIN_LIBRARIES}
465465 if (fp)
466466 fclose(fp);
467467
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);
469482
470483 if (userDict)
471484 free(userDict);
524537 if (configDesc == NULL)
525538 return false;
526539
527 FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "rt", NULL);
540 FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "r", NULL);
528541
529542 if (!fp)
530543 {
549562 void SaveGooglePinyinConfig(FcitxGooglePinyinConfig* fs)
550563 {
551564 FcitxConfigFileDesc *configDesc = GetGooglePinyinConfigDesc();
552 FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "wt", NULL);
565 FILE *fp = FcitxXDGGetFileUserWithPrefix("conf", "fcitx-googlepinyin.config", "w", NULL);
553566 FcitxConfigSaveConfigFileFp(fp, &fs->gconfig, configDesc);
554567 if (fp)
555568 fclose(fp);