genchk.cmake.in 1.4 KB

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