| OLD | NEW |
| (Empty) | |
| 1 # genout.cmake.in |
| 2 # Generate .out from .c 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 set(BINDIR "@CMAKE_CURRENT_BINARY_DIR@") |
| 14 |
| 15 set(AWK "@AWK@") |
| 16 set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@") |
| 17 set(CMAKE_C_FLAGS @CMAKE_C_FLAGS@) |
| 18 set(INCDIR "@CMAKE_CURRENT_BINARY_DIR@") |
| 19 set(PNG_PREFIX "@PNG_PREFIX@") |
| 20 set(PNGLIB_MAJOR "@PNGLIB_MAJOR@") |
| 21 set(PNGLIB_MINOR "@PNGLIB_MINOR@") |
| 22 set(PNGLIB_VERSION "@PNGLIB_VERSION@") |
| 23 set(ZLIBINCDIR "@ZLIB_INCLUDE_DIR@") |
| 24 |
| 25 set(PLATFORM_C_FLAGS) |
| 26 if(APPLE) |
| 27 set(CMAKE_OSX_ARCHITECTURES "@CMAKE_OSX_ARCHITECTURES@") |
| 28 set(CMAKE_OSX_SYSROOT "@CMAKE_OSX_SYSROOT@") |
| 29 if(CMAKE_OSX_ARCHITECTURES) |
| 30 set(PLATFORM_C_FLAGS ${PLATFORM_C_FLAGS} -arch ${CMAKE_OSX_ARCHITECTURES}) |
| 31 endif() |
| 32 if(CMAKE_OSX_SYSROOT) |
| 33 set(PLATFORM_C_FLAGS ${PLATFORM_C_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT}) |
| 34 endif() |
| 35 endif() |
| 36 |
| 37 get_filename_component(INPUTEXT "${INPUT}" EXT) |
| 38 get_filename_component(OUTPUTEXT "${OUTPUT}" EXT) |
| 39 get_filename_component(INPUTBASE "${INPUT}" NAME_WE) |
| 40 get_filename_component(OUTPUTBASE "${OUTPUT}" NAME_WE) |
| 41 get_filename_component(INPUTDIR "${INPUT}" PATH) |
| 42 get_filename_component(OUTPUTDIR "${OUTPUT}" PATH) |
| 43 |
| 44 if ("${INPUTEXT}" STREQUAL ".c" AND "${OUTPUTEXT}" STREQUAL ".out") |
| 45 get_filename_component(GENDIR "${OUTPUT}" PATH) |
| 46 file(MAKE_DIRECTORY "${GENDIR}") |
| 47 |
| 48 file(REMOVE "${OUTPUT}.tf1" "${OUTPUT}.tf2") |
| 49 |
| 50 set(INCLUDES "-I${INCDIR}") |
| 51 if(ZLIBINCDIR) |
| 52 foreach(dir ${ZLIBINCDIR}) |
| 53 list(APPEND INCLUDES "-I${dir}") |
| 54 endforeach() |
| 55 endif() |
| 56 |
| 57 if(PNG_PREFIX) |
| 58 set(PNG_PREFIX_DEF "-DPNG_PREFIX=${PNG_PREFIX}") |
| 59 endif() |
| 60 |
| 61 execute_process(COMMAND "${CMAKE_C_COMPILER}" "-E" |
| 62 ${CMAKE_C_FLAGS} |
| 63 ${PLATFORM_C_FLAGS} |
| 64 "-I${SRCDIR}" |
| 65 "-I${BINDIR}" |
| 66 ${INCLUDES} |
| 67 "-DPNGLIB_LIBNAME=PNG${PNGLIB_MAJOR}${PNGLIB_MINOR}_0" |
| 68 "-DPNGLIB_VERSION=${PNGLIB_VERSION}" |
| 69 "-DSYMBOL_PREFIX=${SYMBOL_PREFIX}" |
| 70 "-DPNG_NO_USE_READ_MACROS" |
| 71 "-DPNG_BUILDING_SYMBOL_TABLE" |
| 72 ${PNG_PREFIX_DEF} |
| 73 "${INPUT}" |
| 74 OUTPUT_FILE "${OUTPUT}.tf1" |
| 75 WORKING_DIRECTORY "${BINDIR}" |
| 76 RESULT_VARIABLE CPP_FAIL) |
| 77 if(CPP_FAIL) |
| 78 message(FATAL_ERROR "Failed to generate ${OUTPUT}.tf1") |
| 79 endif() |
| 80 |
| 81 execute_process(COMMAND "${AWK}" -f "${SRCDIR}/scripts/dfn.awk" |
| 82 "out=${OUTPUT}.tf2" "${OUTPUT}.tf1" |
| 83 WORKING_DIRECTORY "${BINDIR}" |
| 84 RESULT_VARIABLE AWK_FAIL) |
| 85 if(AWK_FAIL) |
| 86 message(FATAL_ERROR "Failed to generate ${OUTPUT}.tf2") |
| 87 endif() |
| 88 |
| 89 file(REMOVE "${OUTPUT}.tf1") |
| 90 file(RENAME "${OUTPUT}.tf2" "${OUTPUT}") |
| 91 else() |
| 92 message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}") |
| 93 endif() |
| OLD | NEW |