1# genchk.cmake.in 2# Generate .chk from .out with awk (generic), based upon the automake logic. 3 4# Copyright (c) 2022-2024 Cosmin Truta 5# Copyright (c) 2016 Glenn Randers-Pehrson 6# Written by Roger Leigh, 2016 7# 8# Use, modification and distribution are subject to 9# the same licensing terms and conditions as libpng. 10# Please see the copyright notice in png.h or visit 11# http://libpng.org/pub/png/src/libpng-LICENSE.txt 12# 13# SPDX-License-Identifier: libpng-2.0 14 15# Variables substituted from CMakeLists.txt 16set(SRCDIR "@CMAKE_CURRENT_SOURCE_DIR@") 17set(BINDIR "@CMAKE_CURRENT_BINARY_DIR@") 18 19set(AWK "@AWK@") 20 21get_filename_component(INPUTEXT "${INPUT}" EXT) 22get_filename_component(OUTPUTEXT "${OUTPUT}" EXT) 23get_filename_component(INPUTBASE "${INPUT}" NAME_WE) 24get_filename_component(OUTPUTBASE "${OUTPUT}" NAME_WE) 25get_filename_component(INPUTDIR "${INPUT}" PATH) 26get_filename_component(OUTPUTDIR "${OUTPUT}" PATH) 27 28if(INPUTEXT STREQUAL ".out" AND OUTPUTEXT STREQUAL ".chk") 29 # Generate .chk from .out with awk (generic) 30 file(REMOVE "${OUTPUT}" "${OUTPUTDIR}/${OUTPUTBASE}.new") 31 execute_process(COMMAND "${AWK}" -f "${BINDIR}/scripts/checksym.awk" 32 "${SRCDIR}/scripts/${INPUTBASE}.def" 33 "of=${OUTPUTDIR}/${OUTPUTBASE}.new" 34 "${INPUT}" 35 RESULT_VARIABLE AWK_FAIL) 36 if(AWK_FAIL) 37 message(FATAL_ERROR "Failed to generate ${OUTPUTDIR}/${OUTPUTBASE}.new") 38 endif() 39 file(RENAME "${OUTPUTDIR}/${OUTPUTBASE}.new" "${OUTPUT}") 40else() 41 message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}") 42endif() 43