Warning, /games/knights/cmake/InternalMacros.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2021, 2023 Friedrich W. H. Kossebau <kossebau@kde.org>
0002 #
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 find_package(7Zip)
0006 set_package_properties(7Zip PROPERTIES
0007     PURPOSE "For installing SVG files as SVGZ"
0008 )
0009 
0010 if(WIN32)
0011     set_package_properties(7Zip PROPERTIES
0012         TYPE REQUIRED
0013     )
0014 else()
0015     set_package_properties(7Zip PROPERTIES
0016         TYPE OPTIONAL
0017     )
0018     if(NOT TARGET 7Zip::7Zip)
0019         find_package(gzip)
0020         set_package_properties(gzip PROPERTIES
0021             TYPE REQUIRED
0022             PURPOSE "For installing SVG files as SVGZ (less efficient fallback for 7Zip)"
0023         )
0024     endif()
0025 endif()
0026 
0027 function(generate_svgz svg_file svgz_file target_prefix)
0028     if (NOT IS_ABSOLUTE ${svg_file})
0029         set(svg_file "${CMAKE_CURRENT_SOURCE_DIR}/${svg_file}")
0030     endif()
0031     if (NOT EXISTS ${svg_file})
0032         message(FATAL_ERROR "No such file found: ${svg_file}")
0033     endif()
0034     get_filename_component(_fileName "${svg_file}" NAME)
0035 
0036     if(TARGET 7Zip::7Zip)
0037         add_custom_command(
0038             OUTPUT ${svgz_file}
0039             COMMAND 7Zip::7Zip
0040             ARGS
0041                 a
0042                 -bd # silence logging
0043                 -mx9 # compress best
0044                 -tgzip
0045                 ${svgz_file} ${svg_file}
0046             DEPENDS ${svg_file}
0047             COMMENT "Gzipping ${_fileName}"
0048         )
0049     else()
0050         add_custom_command(
0051             OUTPUT ${svgz_file}
0052             COMMAND gzip::gzip
0053             ARGS
0054                 -9 # compress best
0055                 -n # no original name and timestamp stored, for reproducibility
0056                 -c # write to stdout
0057                 ${svg_file} > ${svgz_file}
0058             DEPENDS ${svg_file}
0059             COMMENT "Gzipping ${_fileName}"
0060         )
0061     endif()
0062 
0063     add_custom_target("${target_prefix}${_fileName}z" ALL DEPENDS ${svgz_file})
0064 endfunction()