Home | History | Annotate | Download | only in scripts
      1 # genchk.cmake.in
      2 # Generate .chk from .out with awk (generic), based upon the automake logic.
      3 
      4 # Copyright (C) 2016 Glenn Randers-Pehrson
      5 # Written by Roger Leigh, 2016
      6 
      7 # This code is released under the libpng license.
      8 # For conditions of distribution and use, see the disclaimer
      9 # and license in png.h
     10 
     11 # Variables substituted from CMakeLists.txt
     12 set(SRCDIR "@CMAKE_CURRENT_SOURCE_DIR@")
     13 
     14 set(AWK "@AWK@")
     15 
     16 get_filename_component(INPUTEXT "${INPUT}" EXT)
     17 get_filename_component(OUTPUTEXT "${OUTPUT}" EXT)
     18 get_filename_component(INPUTBASE "${INPUT}" NAME_WE)
     19 get_filename_component(OUTPUTBASE "${OUTPUT}" NAME_WE)
     20 get_filename_component(INPUTDIR "${INPUT}" PATH)
     21 get_filename_component(OUTPUTDIR "${OUTPUT}" PATH)
     22 
     23 if("${INPUTEXT}" STREQUAL ".out" AND "${OUTPUTEXT}" STREQUAL ".chk")
     24   # Generate .chk from .out with awk (generic)
     25   file(REMOVE "${OUTPUT}" "${OUTPUTDIR}/${OUTPUTBASE}.new")
     26   execute_process(COMMAND "${AWK}" -f "${SRCDIR}/scripts/checksym.awk"
     27                           "${SRCDIR}/scripts/${INPUTBASE}.def"
     28                           "of=${OUTPUTDIR}/${OUTPUTBASE}.new"
     29                           "${INPUT}"
     30                   RESULT_VARIABLE AWK_FAIL)
     31   if(AWK_FAIL)
     32     message(FATAL_ERROR "Failed to generate ${OUTPUTDIR}/${OUTPUTBASE}.new")
     33   endif()
     34   file(RENAME "${OUTPUTDIR}/${OUTPUTBASE}.new" "${OUTPUT}")
     35 else()
     36   message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}")
     37 endif()
     38