Warning, /frameworks/extra-cmake-modules/tests/ECMPoQmToolsTest/check.cmake.in is written in an unsupported language. File is not indexed.

0001 set(BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
0002 set(ACTUAL_TREE "@CMAKE_INSTALL_PREFIX@")
0003 include("${BINARY_DIR}/check_conf.cmake")
0004 
0005 set(fail OFF)
0006 
0007 macro(mark_failed msg)
0008     message(WARNING "FAIL: ${msg}")
0009     set(fail ON)
0010 endmacro()
0011 
0012 macro(check_exists file)
0013     message(STATUS "Checking for ${file}")
0014     if (NOT EXISTS ${file})
0015         mark_failed("File \"${file}\" does not exist")
0016     endif()
0017 endmacro()
0018 
0019 check_exists(${BINARY_DIR}/ECMPoQm/fr/only-process.qm)
0020 
0021 set(exp_files
0022     "share/locale/fr/LC_MESSAGES/process-and-install.qm"
0023     "share/locale/es/LC_MESSAGES/install-test.qm"
0024     "share/locale/fr/LC_MESSAGES/install-test.qm"
0025     "share/locale/en/LC_MESSAGES/catalog.qm"
0026     "share/locale/en/LC_MESSAGES/catalog2.qm"
0027     "share/locale/de/LC_MESSAGES/catalog.qm"
0028     "share/locale/de/LC_MESSAGES/catalog2.qm"
0029     "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm"
0030     "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm"
0031     "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm"
0032     "custom-dir2/fr/LC_MESSAGES/custom-dir2-install-test.qm"
0033 )
0034 file(GLOB_RECURSE actual_files RELATIVE "${ACTUAL_TREE}" "${ACTUAL_TREE}/*")
0035 list(SORT exp_files)
0036 list(SORT actual_files)
0037 
0038 if(NOT exp_files STREQUAL actual_files)
0039     foreach(f ${exp_files})
0040         list(FIND actual_files "${f}" result)
0041         if(result EQUAL -1)
0042             message(WARNING "${f} was expected, but not found")
0043             set(fail ON)
0044         endif()
0045     endforeach()
0046     foreach(f ${actual_files})
0047         list(FIND exp_files "${f}" result)
0048         if(result EQUAL -1)
0049             message(WARNING "${f} was found, but not expected")
0050             set(fail ON)
0051         endif()
0052     endforeach()
0053 else()
0054     message(STATUS "Installed translations in expected locations")
0055 endif()
0056 
0057 # we know we can modify the executable environment on Linux
0058 if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux")
0059     set(exp_output_catalog_en "english text:english plural form 5")
0060     set(exp_output_catalog_de "german text:german plural form 5")
0061     # no de_AT translation -> should fall back to de
0062     set(exp_output_catalog_de_AT "${exp_output_catalog_de}")
0063     # no french translation provided -> english fallback
0064     set(exp_output_catalog_fr "${exp_output_catalog_en}")
0065 
0066     set(exp_output_catalog2_en "2nd english text:2nd english plural form 5")
0067     set(exp_output_catalog2_de "2nd german text:2nd german plural form 5")
0068     # no de_AT translation -> should fall back to de
0069     set(exp_output_catalog2_de_AT "${exp_output_catalog2_de}")
0070     # no french translation provided -> english fallback
0071     set(exp_output_catalog2_fr "${exp_output_catalog2_en}")
0072 
0073     function(check_translations name exec catalog_name)
0074         foreach(lang en de de_AT fr)
0075             execute_process(
0076                 COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share"
0077                     LANG=${lang} "${exec}"
0078                 OUTPUT_VARIABLE output
0079             )
0080             string(STRIP "${output}" stripped_output)
0081             if(NOT stripped_output STREQUAL exp_output_${catalog_name}_${lang})
0082                 message(WARNING "${name}[${lang}] output was \"${stripped_output}\", but expected \"${exp_output_${catalog_name}_${lang}}\"")
0083                 set(fail ON PARENT_SCOPE)
0084             else()
0085                 message(STATUS "${name}[${lang}] output was \"${stripped_output}\", as expected")
0086             endif()
0087         endforeach()
0088     endfunction()
0089 
0090     check_translations(TR_TEST "${TR_TEST_EXEC}" catalog)
0091     check_translations(TR_TEST_TARGET "${TR_TEST_TARGET_EXEC}" catalog)
0092     check_translations(TR_TEST_2 "${TR_TEST_2_EXEC}" catalog2)
0093 
0094     check_translations(TR_TEST_SUBDIR "${TR_TEST_SUBDIR_EXEC}" catalog)
0095 
0096     check_translations(TR_THREAD_TEST "${TR_THREAD_TEST_EXEC}" catalog)
0097     check_translations(TR_THREAD_TEST_2 "${TR_THREAD_TEST_2_EXEC}" catalog2)
0098 endif()
0099 
0100 if (fail)
0101     message(FATAL_ERROR "Test failed!")
0102 endif()