neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

GettextCMakeLists.txt (17636B)


      1 cmake_minimum_required(VERSION 3.16)
      2 project(gettext C)
      3 
      4 add_compile_options(-w)
      5 set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4006")
      6 
      7 # Adds PREFIX to each item in LIST
      8 macro(PREFIX_LIST_ITEMS LIST PREFIX)
      9  string(REPLACE ";" ";${PREFIX}" ${LIST} ";${${LIST}}")
     10 endmacro()
     11 
     12 file(READ gettext-runtime/config.h.in CONFIG_CONTENT)
     13 string(REPLACE "#undef HAVE_GETCWD" "#define HAVE_GETCWD 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     14 string(REPLACE "#undef HAVE_LONG_LONG_INT" "#define HAVE_LONG_LONG_INT 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     15 string(REPLACE "#undef HAVE_ICONV_H" "#define HAVE_ICONV_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     16 string(REPLACE "#undef HAVE_ICONV" "#define HAVE_ICONV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     17 string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" CONFIG_CONTENT ${CONFIG_CONTENT})
     18 if(MSVC)
     19  string(REPLACE "#undef HAVE_STDINT_H_WITH_UINTMAX" "#define HAVE_STDINT_H_WITH_UINTMAX 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     20  string(REPLACE "#undef HAVE_STDINT_H" "#define HAVE_STDINT_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     21 else()
     22  string(REPLACE "#undef uintmax_t" "
     23    #if _WIN64
     24    # define intmax_t long long
     25    # define uintmax_t unsigned long long
     26    #elif _WIN32
     27    # define intmax_t long
     28    # define uintmax_t unsigned long
     29    #endif"
     30    CONFIG_CONTENT ${CONFIG_CONTENT})
     31  endif()
     32 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/config.h ${CONFIG_CONTENT})
     33 
     34 set(HAVE_NEWLOCALE 0)
     35 set(HAVE_POSIX_PRINTF 0)
     36 set(HAVE_SNPRINTF 0)
     37 set(HAVE_ASPRINTF 0)
     38 set(HAVE_WPRINTF 0)
     39 set(HAVE_NAMELESS_LOCALES 0)
     40 set(HAVE_LONG_LONG_INT 1)
     41 configure_file(gettext-runtime/intl/libgnuintl.in.h
     42  ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl/libgnuintl.h)
     43 
     44 set(LOCALDIR "gettext")
     45 set(LIBDIR "gettext")
     46 set(PKGDATADIR "gettext")
     47 set(PACKAGE_SUFFIX "gettext")
     48 add_definitions(-DLOCALEDIR=\"${LOCALDIR}\"
     49  -DLOCALE_ALIAS_PATH=\"${LOCALDIR}\"
     50  -DLIBDIR=\"${LOCALDIR}\"
     51  -DINSTALLDIR=\"${LOCALDIR}\"
     52  -DEXEEXT=\".exe\"
     53  -DLOCALEDIR=\"${LOCALDIR}\"
     54  -DLIBDIR=\"${LIBDIR}\"
     55  -DPACKAGE_SUFFIX=\"${PACKAGE_SUFFIX}\"
     56  -DGETTEXTDATADIR=\"${PKGDATADIR}\"
     57  -DBISON_LOCALEDIR=\"${LOCALDIR}\"
     58  -DHAVE_CONFIG_H)
     59 
     60 set(libintl_SOURCES
     61  bindtextdom.c dcgettext.c dcigettext.c dcngettext.c dgettext.c dngettext.c
     62  explodename.c finddomain.c gettext.c hash-string.c intl-compat.c l10nflist.c
     63  langprefs.c loadmsgcat.c localcharset.c localealias.c localename-table.c
     64  localename.c lock.c log.c ngettext.c osdep.c
     65  plural-exp.c plural.c printf.c relocatable.c setlocale.c textdomain.c
     66  threadlib.c version.c xsize.c)
     67 
     68 PREFIX_LIST_ITEMS(libintl_SOURCES "gettext-runtime/intl/")
     69 
     70 add_library(libintl ${libintl_SOURCES})
     71 target_link_libraries(libintl ${LIBICONV_LIBRARIES})
     72 set_property(TARGET libintl APPEND PROPERTY INCLUDE_DIRECTORIES
     73  ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime
     74  ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl
     75  ${LIBICONV_INCLUDE_DIRS})
     76 set_property(TARGET libintl APPEND PROPERTY COMPILE_DEFINITIONS
     77  BUILDING_LIBINTL
     78  IN_LIBINTL
     79  ENABLE_RELOCATABLE=1
     80  IN_LIBRARY
     81  NO_XMALLOC
     82  set_relocation_prefix=libintl_set_relocation_prefix
     83  relocate=libintl_relocate
     84  HAVE_CONFIG_H)
     85 
     86 
     87 file(READ gettext-tools/config.h.in CONFIG_CONTENT)
     88 string(REPLACE "#undef FLEXIBLE_ARRAY_MEMBER" "#define FLEXIBLE_ARRAY_MEMBER 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     89 string(REPLACE "__declspec (dllimport)" "" CONFIG_CONTENT ${CONFIG_CONTENT})
     90 string(REPLACE "#undef ENDIANNESS" "#define ENDIANNESS 0" CONFIG_CONTENT ${CONFIG_CONTENT})
     91 string(REPLACE "#undef GNULIB_FWRITEERROR" "#define GNULIB_FWRITEERROR 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     92 string(REPLACE "#undef HAVE_DECL_STRERROR_R" "#define HAVE_DECL_STRERROR_R 0" CONFIG_CONTENT ${CONFIG_CONTENT})
     93 string(REPLACE "#undef HAVE_DUP2" "#define HAVE_DUP2 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     94 string(REPLACE "#undef HAVE_ICONV_H" "#define HAVE_ICONV_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     95 string(REPLACE "#undef HAVE_ICONV" "#define HAVE_ICONV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     96 string(REPLACE "#undef HAVE_LIBUNISTRING" "#define HAVE_LIBUNISTRING 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     97 string(REPLACE "#undef HAVE_STDINT_H_WITH_UINTMAX" "#define HAVE_STDINT_H_WITH_UINTMAX 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     98 string(REPLACE "#undef HAVE_STDINT_H" "#define HAVE_STDINT_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
     99 string(REPLACE "#undef HAVE_LONG_LONG_INT" "#define HAVE_LONG_LONG_INT 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    100 string(REPLACE "#undef HAVE_STRING_H" "#define HAVE_STRING_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    101 string(REPLACE "#undef HAVE_SYS_TIMEB_H" "#define HAVE_SYS_TIMEB_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    102 string(REPLACE "#undef HAVE__FTIME" "#define HAVE__FTIME 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    103 string(REPLACE "#undef HAVE_FLOAT_H" "#define HAVE_FLOAT_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    104 string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" CONFIG_CONTENT ${CONFIG_CONTENT})
    105 string(REPLACE "#undef PACKAGE" "#define PACKAGE \"gettext\"\n#define gettext_VERSION" CONFIG_CONTENT ${CONFIG_CONTENT})
    106 string(REPLACE "#undef VERSION" "#define VERSION \"\"" CONFIG_CONTENT ${CONFIG_CONTENT})
    107 string(REPLACE "#undef mode_t" "#define mode_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
    108 string(REPLACE "#undef pid_t" "#define pid_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
    109 string(REPLACE "#undef restrict" "#define restrict __restrict" CONFIG_CONTENT ${CONFIG_CONTENT})
    110 string(REPLACE "#undef ssize_t" "#include <BaseTsd.h>\n#define ssize_t SSIZE_T" CONFIG_CONTENT ${CONFIG_CONTENT})
    111 string(REPLACE "#undef uid_t" "#define uid_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
    112 string(REPLACE "#undef HAVE_DECL___ARGV" "#define HAVE_DECL___ARGV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
    113 set(CONFIG_CONTENT "${CONFIG_CONTENT}\n#define isatty libtextstyle_isatty")
    114 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/config.h ${CONFIG_CONTENT})
    115 
    116 set(libgettextsrc_COMMON_SOURCE
    117  message.c po-error.c po-xerror.c read-catalog-abstract.c po-lex.c
    118  po-gram-gen.c po-charset.c read-po.c read-properties.c read-stringtable.c
    119  open-catalog.c dir-list.c str-list.c)
    120 
    121 set(libgettextsrc_FORMAT_SOURCE
    122  format.c format-invalid.h format-c.c format-c-parse.h format-sh.c
    123  format-python.c format-python-brace.c format-lisp.c format-elisp.c
    124  format-librep.c format-scheme.c format-java.c format-csharp.c format-awk.c
    125  format-pascal.c format-ycp.c format-tcl.c format-perl.c format-perl-brace.c
    126  format-php.c format-gcc-internal.c format-gfc-internal.c format-qt.c
    127  format-qt-plural.c format-kde.c format-kde-kuit.c format-boost.c format-lua.c
    128  format-javascript.c)
    129 
    130 set(libgettextsrc_SOURCES
    131  ${libgettextsrc_COMMON_SOURCE} read-catalog.c
    132  write-catalog.c write-properties.c write-stringtable.c write-po.c
    133  msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c
    134  msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c
    135  plural-table.c quote.h sentence.h sentence.c
    136  ${libgettextsrc_FORMAT_SOURCE}
    137  read-desktop.c locating-rule.c its.c search-path.c)
    138 PREFIX_LIST_ITEMS(libgettextsrc_SOURCES "gettext-tools/src/")
    139 
    140 set(GLIBC_SOURCE
    141  uniname/uniname.c javaexec.c unsetenv.c classpath.c setenv.c xsetenv.c
    142  sh-quote.c execute.c javaversion.c csharpcomp.c csharpexec.c javacomp.c
    143  gettimeofday.c getdtablesize.c fcntl.c dup-safer-flag.c cloexec.c
    144  fd-safer-flag.c fd-safer.c pipe2.c pipe2-safer.c spawn-pipe.c xmemdup0.c
    145  secure_getenv.c tmpdir.c tempname.c mkdtemp.c fnmatch.c clean-temp.c
    146  wait-process.c waitpid.c getdelim.c getline.c sigprocmask.c sigaction.c
    147  addext.c argmatch.c backupfile.c basename.c c-strcasecmp.c c-strncasecmp.c
    148  c-strstr.c closeout.c concat-filename.c error-progname.c error.c exitfail.c
    149  fstrcmp.c full-write.c fwriteerror.c getopt.c getopt1.c hash.c libxml/buf.c
    150  localcharset.c malloca.c mbchar.c mbslen.c mbsstr.c mbswidth.c obstack.c
    151  progname.c printf-args.c printf-parse.c propername.c quotearg.c rawmemchr.c
    152  safe-read.c safe-write.c stpcpy.c stpncpy.c strchrnul.c striconv.c
    153  striconveh.c striconveha.c strnlen1.c trim.c gcd.c gl_linkedhash_list.c
    154  uniconv/u8-conv-from-enc.c unictype/ctype_space.c unilbrk/lbrktables.c
    155  unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c
    156  unilbrk/ulc-common.c unilbrk/ulc-width-linebreaks.c unistr/u16-mbtouc-aux.c
    157  unistr/u16-mbtouc.c unistr/u8-check.c unistr/u8-mblen.c
    158  unistr/u8-mbtouc-aux.c unistr/u8-mbtouc-unsafe-aux.c
    159  unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc.c unistr/u8-mbtoucr.c
    160  unistr/u8-prev.c unistr/u8-uctomb-aux.c unistr/u8-uctomb.c uniwidth/width.c
    161  vasnprintf.c vasprintf.c wcwidth.c xasprintf.c xconcat-filename.c xerror.c
    162  xmalloc.c xstrdup.c xstriconv.c xstriconveh.c xvasprintf.c
    163  libxml/DOCBparser.c libxml/HTMLparser.c libxml/HTMLtree.c libxml/SAX.c
    164  libxml/SAX2.c libxml/c14n.c libxml/catalog.c libxml/chvalid.c
    165  libxml/debugXML.c libxml/dict.c libxml/encoding.c libxml/entities.c
    166  libxml/error.c libxml/globals.c libxml/hash.c libxml/legacy.c libxml/list.c
    167  libxml/nanoftp.c libxml/nanohttp.c libxml/parser.c libxml/parserInternals.c
    168  libxml/pattern.c libxml/relaxng.c libxml/schematron.c libxml/threads.c
    169  libxml/tree.c libxml/trionan.c libxml/uri.c libxml/valid.c libxml/xinclude.c
    170  libxml/xlink.c libxml/xmlIO.c libxml/xmlmemory.c libxml/xmlmodule.c
    171  libxml/xmlreader.c libxml/xmlregexp.c libxml/xmlsave.c libxml/xmlschemas.c
    172  libxml/xmlschemastypes.c libxml/xmlstring.c libxml/xmlunicode.c
    173  libxml/xmlwriter.c libxml/xpath.c libxml/xpointer.c fatal-signal.c
    174  copy-file.c read-file.c ftello.c utime.c gettime.c utimens.c)
    175 PREFIX_LIST_ITEMS(GLIBC_SOURCE "gettext-tools/gnulib-lib/")
    176 
    177 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/gnulib-lib/configmake.h "#define PKGDATADIR \"gettext\"")
    178 
    179 set(LIBGLIB_SOURCES
    180  ghash.c glist.c gmessages.c gprimes.c gstrfuncs.c gstring.c)
    181 PREFIX_LIST_ITEMS(LIBGLIB_SOURCES "libtextstyle/lib/glib/")
    182 
    183 set(LIBTEXTSTYLE_SOURCE
    184  gl_array_list.h gl_array_list.c binary-io.h
    185  binary-io.c c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c
    186  c-strncasecmp.c concat-filename.c dirname-lgpl.c
    187  basename-lgpl.c stripslash.c exitfail.c fatal-signal.h
    188  fatal-signal.c fd-hook.c fd-ostream.c file-ostream.c
    189  full-write.h full-write.c getprogname.h getprogname.c
    190  gettext.h hash.h hash.c html-ostream.c html-styled-ostream.c
    191  iconv-ostream.c gl_list.h gl_list.c math.c memory-ostream.c
    192  minmax.h noop-styled-ostream.c ostream.c safe-read.c
    193  safe-write.c sig-handler.c size_max.h styled-ostream.c
    194  term-ostream.c term-style-control.c term-styled-ostream.c
    195  unistd.c xalloc.h xmalloc.c xstrdup.c
    196  xconcat-filename.c gl_xlist.h gl_xlist.c xsize.h xsize.c
    197  xvasprintf.h xvasprintf.c xasprintf.c color.h color.c misc.h
    198  misc.c version.c isatty.c fsync.c tparm.c tputs.c)
    199 PREFIX_LIST_ITEMS(LIBTEXTSTYLE_SOURCE "libtextstyle/lib/")
    200 
    201 configure_file(
    202  libtextstyle/lib/stdbool.mini.h
    203  ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib/textstyle/stdbool.h
    204  COPYONLY)
    205 
    206 set(LIBCROCO_SOURCES
    207  cr-additional-sel.c cr-attr-sel.c cr-cascade.c cr-declaration.c
    208  cr-doc-handler.c cr-enc-handler.c cr-fonts.c cr-input.c cr-num.c
    209  cr-om-parser.c cr-parser.c cr-parsing-location.c cr-prop-list.c cr-pseudo.c
    210  cr-rgb.c cr-sel-eng.c cr-selector.c cr-simple-sel.c cr-statement.c
    211  cr-string.c cr-style.c cr-stylesheet.c cr-term.c cr-tknzr.c cr-token.c
    212  cr-utils.c)
    213 PREFIX_LIST_ITEMS(LIBCROCO_SOURCES "libtextstyle/lib/libcroco/")
    214 
    215 set(libgettextsrc_SOURCES
    216  ${libgettextsrc_SOURCES} ${GLIBC_SOURCE} ${LIBGLIB_SOURCES}
    217  ${LIBTEXTSTYLE_SOURCE} ${LIBCROCO_SOURCES})
    218 
    219 macro(CONFIGURE_HEADER_FILES HEADER_TEMPLATES_PATH)
    220  set(HEADER_TEMPLATES_ABS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_TEMPLATES_PATH}")
    221  file(GLOB_RECURSE HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/*.in.h")
    222  list(REMOVE_ITEM HEADER_TEMPLATES  "${HEADER_TEMPLATES_ABS_PATH}/stdint.in.h")
    223  list(REMOVE_ITEM HEADER_TEMPLATES  "${HEADER_TEMPLATES_ABS_PATH}/wchar.in.h")
    224  foreach(HEADER_TEMPLATE ${HEADER_TEMPLATES})
    225    file(READ ${HEADER_TEMPLATE} HEADER_CONTENT)
    226    string(REPLACE "/* The definition of _GL_ARG_NONNULL is copied here.  */" "#include \"arg-nonnull.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
    227    string(REPLACE "/* The definition of _GL_WARN_ON_USE is copied here.  */" "#include \"warn-on-use.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
    228    string(REPLACE "/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */" "#include \"c++defs.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
    229    string(REPLACE "@GNULIB_LSTAT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    230    string(REPLACE "@GNULIB_MBSINIT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    231    string(REPLACE "@GNULIB_SIGACTION@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    232    string(REPLACE "@GNULIB_SIGPROCMASK@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    233    string(REPLACE "@GNULIB_STPCPY@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    234    string(REPLACE "@GNULIB_STPNCPY@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    235    string(REPLACE "@GNULIB_STRCHRNUL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    236    string(REPLACE "@HAVE_ISWCNTRL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    237    string(REPLACE "@HAVE_WCTYPE_T@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    238    string(REPLACE "@HAVE_STRUCT_TIMEVAL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    239    string(REPLACE "@HAVE_WINSOCK2_H@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    240    string(REPLACE "@DLL_VARIABLE@" "" HEADER_CONTENT "${HEADER_CONTENT}")
    241    string(REPLACE "@HAVE_NEWLOCALE@" "0" HEADER_CONTENT "${HEADER_CONTENT}")
    242    string(REPLACE "@PRAGMA_COLUMNS@" "" HEADER_CONTENT "${HEADER_CONTENT}")
    243    string(REPLACE "#if @GNULIB_UTIME@" "#if 1\n#define utime gl_utime" HEADER_CONTENT "${HEADER_CONTENT}")
    244    string(REPLACE "@HAVE_UTIME@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    245    string(REPLACE "@HAVE_LONG_LONG_INT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
    246 
    247    string(REGEX REPLACE "^${HEADER_TEMPLATES_ABS_PATH}/" "" HEADER_PATH "${HEADER_TEMPLATE}")
    248    string(REPLACE ".in" "" HEADER_PATH ${HEADER_PATH})
    249    string(REPLACE "_" "/" HEADER_PATH ${HEADER_PATH})
    250    # find_file will create a cache entry for the variable
    251    # SYSTEM_HEADER, so reset it before each call
    252    set(SYSTEM_HEADER "SYSTEM_HEADER-NOTFOUND")
    253    find_file(SYSTEM_HEADER ${HEADER_PATH} PATHS "${LIBICONV_INCLUDE_DIRS}")
    254    if(SYSTEM_HEADER)
    255      # Gnulib uses #include_next to extend system header files,
    256      # but MSVC doesn't support it, so a regular include directive
    257      # with a relative path is used instead
    258      string(REGEX REPLACE ".*/(.*/${HEADER_PATH})" "../\\1"
    259        INCLUDE_PATH "${SYSTEM_HEADER}")
    260      string(REGEX REPLACE "@INCLUDE_NEXT[^@]*@ @NEXT_[^@\n]+@"
    261        "include <${INCLUDE_PATH}>" HEADER_CONTENT "${HEADER_CONTENT}")
    262    endif()
    263 
    264    # Default any remaining template variables to 0
    265    string(REGEX REPLACE "@[^@\n]+@" "0" HEADER_CONTENT "${HEADER_CONTENT}")
    266 
    267    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${HEADER_TEMPLATES_PATH}/${HEADER_PATH}" "${HEADER_CONTENT}")
    268  endforeach()
    269 endmacro()
    270 
    271 CONFIGURE_HEADER_FILES("gettext-tools/gnulib-lib")
    272 CONFIGURE_HEADER_FILES("libtextstyle/lib")
    273 
    274 add_library(libgettextsrc ${libgettextsrc_SOURCES})
    275 target_link_libraries(libgettextsrc ${LIBICONV_LIBRARIES})
    276 set_property(TARGET libgettextsrc APPEND PROPERTY COMPILE_DEFINITIONS
    277  LIBTEXTSTYLE_DLL_VARIABLE=)
    278 
    279 set(msgmerge_SOURCES
    280  msgmerge.c msgl-fsearch.c lang-table.c plural-count.c)
    281 PREFIX_LIST_ITEMS(msgmerge_SOURCES "gettext-tools/src/")
    282 
    283 add_executable(msgmerge ${msgmerge_SOURCES})
    284 target_link_libraries(msgmerge libgettextsrc)
    285 add_dependencies(msgmerge libgettextsrc libintl)
    286 
    287 set(msgfmt_SOURCES
    288  msgfmt.c write-mo.c write-java.c write-csharp.c write-resources.c write-tcl.c
    289  write-qt.c write-desktop.c write-xml.c
    290  ../../gettext-runtime/intl/hash-string.c)
    291 PREFIX_LIST_ITEMS(msgfmt_SOURCES "gettext-tools/src/")
    292 
    293 add_executable(msgfmt ${msgfmt_SOURCES})
    294 target_link_libraries(msgfmt libgettextsrc)
    295 add_dependencies(msgfmt libgettextsrc libintl)
    296 
    297 set(xgettext_SOURCES
    298  xgettext.c xg-pos.c xg-encoding.c xg-mixed-string.c xg-arglist-context.c
    299  xg-arglist-callshape.c xg-arglist-parser.c xg-message.c x-c.c x-po.c x-sh.c
    300  x-python.c x-lisp.c x-elisp.c x-librep.c x-scheme.c x-smalltalk.c x-java.c
    301  x-csharp.c x-awk.c x-ycp.c x-tcl.c x-perl.c x-php.c x-rst.c x-lua.c
    302  x-javascript.c x-vala.c x-desktop.c)
    303 PREFIX_LIST_ITEMS(xgettext_SOURCES "gettext-tools/src/")
    304 
    305 add_executable(xgettext ${xgettext_SOURCES})
    306 target_link_libraries(xgettext libgettextsrc)
    307 add_dependencies(xgettext libgettextsrc libintl)
    308 
    309 set_property(TARGET msgmerge msgfmt xgettext libgettextsrc APPEND PROPERTY
    310  INCLUDE_DIRECTORIES
    311    ${CMAKE_CURRENT_SOURCE_DIR}/gettext-runtime/intl
    312    ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/libgettextpo
    313    ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/gnulib-lib
    314    ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/gnulib-lib/libcroco
    315    ${CMAKE_CURRENT_SOURCE_DIR}/build-aux/snippet
    316    ${CMAKE_CURRENT_SOURCE_DIR}/libtextstyle/lib
    317    ${CMAKE_CURRENT_SOURCE_DIR}/libtextstyle/lib/libcroco
    318    ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl
    319    ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools
    320    ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/gnulib-lib
    321    ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib
    322    ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib/textstyle
    323    ${LIBICONV_INCLUDE_DIRS})
    324 
    325 include(GNUInstallDirs)
    326 
    327 install(FILES
    328  ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl/libgnuintl.h
    329  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    330  RENAME libintl.h)
    331 
    332 install(TARGETS libintl msgmerge msgfmt xgettext
    333  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    334  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    335  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    336  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
    337 
    338 # vim: set ft=cmake: