~pete-woods/cmake-extras/drop-deprecated-macros-lp1563573

« back to all changes in this revision

Viewing changes to src/Intltool/IntltoolConfig.cmake

  • Committer: Bileto Bot
  • Author(s): Rodney Dawes
  • Date: 2017-02-28 17:46:31 UTC
  • mfrom: (63.2.16 fix-intltool-merge)
  • Revision ID: ci-train-bot@canonical.com-20170228174631-xd5i7cosklh74r3i
Handle other style options for merging, and no translations for xml style. (LP: #1664325)

Approved by: Charles Kerr, Pete Woods

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
17
17
# An example of common usage is:
18
18
#
19
 
# For an ini file:
20
 
#
21
 
# intltool_merge_translations(
22
 
#   "foo.ini.in"
23
 
#   "${CMAKE_CURRENT_BINARY_DIR}/foo.ini"
24
 
#   ALL
25
 
#   UTF8
 
19
# For a .desktop file:
 
20
#
 
21
# intltool_merge_translations(
 
22
#   "foo.desktop.in"
 
23
#   "foo.destkop"
 
24
#   ALL
 
25
#   UTF8
 
26
# )
 
27
#
 
28
# For a .gschema.xml file:
 
29
#
 
30
# intltool_merge_translations(
 
31
#   "foo.gschema.xml.in"
 
32
#   "foo.gschema.xml"
 
33
#   ALL
 
34
#   UTF8
 
35
#   STYLE "xml"
 
36
#   NO_TRANSLATIONS
26
37
# )
27
38
#
28
39
# Inside po/CMakeLists.txt:
346
357
endfunction()
347
358
 
348
359
function(INTLTOOL_MERGE_TRANSLATIONS FILENAME OUTPUT_FILE)
349
 
    set(_options ALL UTF8 PASS_THROUGH)
350
 
    set(_oneValueArgs PO_DIRECTORY)
 
360
    # PASS_THROUGH option in intltool-merge is deprecated, so too is it here.
 
361
    # We must keep it around as an option though, to avoid breaking things.
 
362
    set(_options ALL UTF8 PASS_THROUGH NO_TRANSLATIONS)
 
363
    set(_oneValueArgs PO_DIRECTORY STYLE)
351
364
 
352
365
    cmake_parse_arguments(_ARG "${_options}" "${_oneValueArgs}" "" ${ARGN})
353
366
 
354
 
    get_filename_component(_ABS_FILENAME ${FILENAME} ABSOLUTE)
355
 
 
356
367
    set(_PO_DIRECTORY "${CMAKE_SOURCE_DIR}/po")
357
368
    if(_ARG_PO_DIRECTORY)
358
369
        set(_PO_DIRECTORY "${_ARG_PO_DIRECTORY}")
363
374
        set(_UTF8 "--utf8")
364
375
    endif()
365
376
 
366
 
    set(_PASS_THROUGH "")
 
377
    # Deprecated
367
378
    if(_ARG_PASS_THROUGH)
368
 
        set(_PASS_THROUGH "--pass-through")
369
 
    endif()
370
 
    
 
379
      message(DEPRECATION "PASS_THROUGH option is deprecated. Do not use it.")
 
380
    endif()
 
381
 
 
382
    # When --no-translations is used with XML should not get used,
 
383
    # so we default to using it for the arg, to use otherwise.
 
384
    set(_NO_TRANSLATIONS "${_PO_DIRECTORY}")
 
385
    if(_ARG_NO_TRANSLATIONS)
 
386
        set(_NO_TRANSLATIONS "--no-translations")
 
387
    endif()
 
388
 
 
389
    set(_STYLE "--desktop-style")
 
390
    if(_ARG_STYLE)
 
391
      set(_STYLE "--${_ARG_STYLE}-style")
 
392
    endif()
 
393
 
371
394
    file(
372
395
        GLOB_RECURSE _PO_FILES
373
396
        ${_PO_DIRECTORY}/*.po
374
397
    )
375
398
 
 
399
    get_filename_component(_INPUT_NAME ${FILENAME} NAME)
 
400
    get_filename_component(_OUTPUT_NAME ${OUTPUT_FILE} NAME)
 
401
    set(_ABS_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_NAME})
 
402
 
 
403
    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT_NAME})
 
404
      set(_INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT_NAME})
 
405
    else()
 
406
      set(_INPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_INPUT_NAME})
 
407
    endif()
 
408
 
376
409
    add_custom_command(
377
410
        OUTPUT
378
 
          ${OUTPUT_FILE}
 
411
          ${_ABS_OUTPUT_FILE}
379
412
        COMMAND
380
 
          ${INTLTOOL_MERGE_EXECUTABLE} --desktop-style --quiet ${_UTF8} ${_PASS_THROUGH} ${_PO_DIRECTORY} ${FILENAME} ${OUTPUT_FILE}
 
413
          ${INTLTOOL_MERGE_EXECUTABLE} ${_STYLE} --quiet ${_UTF8} ${_NO_TRANSLATIONS} ${_INPUT_FILE} ${_OUTPUT_NAME}
381
414
        DEPENDS
382
 
          ${_ABS_FILENAME}
 
415
          ${_INPUT_FILE}
383
416
          ${_PO_FILES}
384
 
        WORKING_DIRECTORY
385
 
          ${CMAKE_CURRENT_SOURCE_DIR}
386
417
    )
387
 
    
388
 
    get_filename_component(_OUTPUT_NAME ${OUTPUT_FILE} NAME)
389
 
    _GETTEXT_GET_UNIQUE_TARGET_NAME(${_OUTPUT_NAME} _UNIQUE_TARGET_NAME)
 
418
 
390
419
 
391
420
    if(_ARG_ALL)
392
421
        add_custom_target(
393
 
          ${_UNIQUE_TARGET_NAME}
 
422
          ${_OUTPUT_NAME}
394
423
          ALL
395
424
          DEPENDS
396
 
            ${OUTPUT_FILE}
 
425
            ${_ABS_OUTPUT_FILE}
397
426
        )
398
427
    else()
399
428
        add_custom_target(
400
 
          ${_UNIQUE_TARGET_NAME}
 
429
          ${_OUTPUT_NAME}
401
430
          DEPENDS
402
 
            ${OUTPUT_FILE}
 
431
            ${_ABS_OUTPUT_FILE}
403
432
        )
404
433
    endif()
405
434
endfunction()