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