Warning, /games/libkdegames/src/carddecks/tools/CompareSVGs.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2023 Friedrich W. H. Kossebau <kossebau@kde.org>
0002 #
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 set(id ${ID})
0006 set(render_tool ${RENDERELEMENT})
0007 set(rcompare_tool ${COMPARE})
0008 set(old_file ${OLD_FILE})
0009 set(new_file ${NEW_FILE})
0010 set(work_dir "${WORKING_DIR}/${id}/check")
0011 
0012 if (NOT EXISTS "${old_file}")
0013     message(FATAL_ERROR "Old file ${old_file} does not exist")
0014 endif()
0015 if (NOT EXISTS "${new_file}")
0016     message(FATAL_ERROR "New file ${new_file} does not exist")
0017 endif()
0018 
0019 # generate list of card element ids
0020 set(rank "king" "queen" "jack" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10")
0021 set(suit "club" "spade" "diamond" "heart")
0022 
0023 set(card_ids "back")
0024 foreach(s ${suit})
0025     foreach(r ${rank})
0026         list(APPEND card_ids "${r}_${s}")
0027     endforeach()
0028 endforeach()
0029 
0030 # ensure working dir
0031 make_directory(${work_dir})
0032 
0033 # compare rendering for each card type
0034 foreach(c ${card_ids})
0035     # generate PNG for original
0036     set(old_png_file "${c}_old.png")
0037     execute_process(
0038         COMMAND ${render_tool} ${old_file} ${c} 200 200 ${old_png_file}
0039         WORKING_DIRECTORY ${work_dir}
0040     )
0041     # generate PNG for modified
0042     set(new_png_file "${c}_new.png")
0043     execute_process(
0044         COMMAND ${render_tool} ${new_file} ${c} 200 200 ${new_png_file}
0045         WORKING_DIRECTORY ${work_dir}
0046     )
0047 
0048     # compare
0049     execute_process(
0050         COMMAND ${rcompare_tool}
0051             -metric MAE
0052             ${old_png_file}
0053             ${new_png_file}
0054             /dev/null # no use for difference image
0055         WORKING_DIRECTORY ${work_dir}
0056         OUTPUT_VARIABLE compare_output
0057         ERROR_VARIABLE compare_output
0058     )
0059     string(REGEX MATCH "^[0-9]*(\\.[0-9]*)?" compare_result "${compare_output}")
0060     if("${compare_result}" STRGREATER 0)
0061         message(STATUS "Difference for ${id}, element ${c}: ${compare_result}")
0062     endif()
0063 endforeach()