xref: /aosp_15_r20/external/libpng/scripts/cmake/genchk.cmake.in (revision a67afe4df73cf47866eedc69947994b8ff839aba)
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