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