patch failing png build

This commit is contained in:
tamasmeszaros 2023-10-24 17:23:48 +02:00
parent c19a3041cb
commit feda1bb888
2 changed files with 98 additions and 0 deletions

2
deps/+PNG/PNG.cmake vendored
View File

@ -8,6 +8,8 @@ endif ()
add_cmake_project(PNG
URL https://github.com/glennrp/libpng/archive/refs/tags/v1.6.40.zip
URL_HASH SHA256=ab3f88779f0661bbb07c60e778fda782216bff70355d86848fbf6a327084563a
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/genout.cmake.in scripts/genout.cmake.in
# SOURCE_DIR /home/quarky/Workspace/prusa3d/PrusaSlicer/prusaslicer-src-master/deps/build-default/dep_PNG-prefix/src/dep_PNG/
CMAKE_ARGS
-DPNG_SHARED=OFF
-DPNG_STATIC=ON

96
deps/+PNG/genout.cmake.in vendored Normal file
View File

@ -0,0 +1,96 @@
# genout.cmake.in
# Generate .out from .c with awk (generic), based upon the automake logic.
# Copyright (C) 2016 Glenn Randers-Pehrson
# Written by Roger Leigh, 2016
# This code is released under the libpng license.
# For conditions of distribution and use, see the disclaimer
# and license in png.h
# Variables substituted from CMakeLists.txt
set(SRCDIR "@CMAKE_CURRENT_SOURCE_DIR@")
set(BINDIR "@CMAKE_CURRENT_BINARY_DIR@")
set(AWK "@AWK@")
set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@")
set(CMAKE_C_FLAGS @CMAKE_C_FLAGS@)
set(INCDIR "@CMAKE_CURRENT_BINARY_DIR@")
set(PNG_PREFIX "@PNG_PREFIX@")
set(PNGLIB_MAJOR "@PNGLIB_MAJOR@")
set(PNGLIB_MINOR "@PNGLIB_MINOR@")
set(PNGLIB_VERSION "@PNGLIB_VERSION@")
set(ZLIBINCDIR "@ZLIB_INCLUDE_DIRS@")
set(PLATFORM_C_FLAGS)
if(APPLE)
set(CMAKE_OSX_INTERNAL_ARCHITECTURES "@CMAKE_OSX_INTERNAL_ARCHITECTURES@")
set(CMAKE_OSX_SYSROOT "@CMAKE_OSX_SYSROOT@")
if(CMAKE_OSX_INTERNAL_ARCHITECTURES)
set(PLATFORM_C_FLAGS ${PLATFORM_C_FLAGS} -arch ${CMAKE_OSX_INTERNAL_ARCHITECTURES})
endif()
if(CMAKE_OSX_SYSROOT)
set(PLATFORM_C_FLAGS ${PLATFORM_C_FLAGS} -isysroot ${CMAKE_OSX_SYSROOT})
endif()
endif()
get_filename_component(INPUTEXT "${INPUT}" EXT)
get_filename_component(OUTPUTEXT "${OUTPUT}" EXT)
get_filename_component(INPUTBASE "${INPUT}" NAME_WE)
get_filename_component(OUTPUTBASE "${OUTPUT}" NAME_WE)
get_filename_component(INPUTDIR "${INPUT}" PATH)
get_filename_component(OUTPUTDIR "${OUTPUT}" PATH)
if ("${INPUTEXT}" STREQUAL ".c" AND "${OUTPUTEXT}" STREQUAL ".out")
get_filename_component(GENDIR "${OUTPUT}" PATH)
file(MAKE_DIRECTORY "${GENDIR}")
file(REMOVE "${OUTPUT}.tf1" "${OUTPUT}.tf2")
set(INCLUDES "-I${INCDIR}")
if(ZLIBINCDIR)
foreach(dir ${ZLIBINCDIR})
list(APPEND INCLUDES "-I${dir}")
endforeach()
endif()
if(PNG_PREFIX)
set(PNG_PREFIX_DEF "-DPNG_PREFIX=${PNG_PREFIX}")
endif()
execute_process(COMMAND "${CMAKE_C_COMPILER}" "-E"
${CMAKE_C_FLAGS}
${PLATFORM_C_FLAGS}
"-I${SRCDIR}"
"-I${BINDIR}"
${INCLUDES}
"-DPNGLIB_LIBNAME=PNG${PNGLIB_MAJOR}${PNGLIB_MINOR}_0"
"-DPNGLIB_VERSION=${PNGLIB_VERSION}"
"-DSYMBOL_PREFIX=${SYMBOL_PREFIX}"
"-DPNG_NO_USE_READ_MACROS"
"-DPNG_BUILDING_SYMBOL_TABLE"
${PNG_PREFIX_DEF}
"${INPUT}"
OUTPUT_FILE "${OUTPUT}.tf1"
WORKING_DIRECTORY "${BINDIR}"
RESULT_VARIABLE CPP_FAIL)
if(CPP_FAIL)
message(FATAL_ERROR "Failed to generate ${OUTPUT}.tf1")
endif()
execute_process(COMMAND "${AWK}" -f "${SRCDIR}/scripts/dfn.awk"
"out=${OUTPUT}.tf2" "${OUTPUT}.tf1"
WORKING_DIRECTORY "${BINDIR}"
OUTPUT_FILE "awk.log"
ERROR_FILE "awk_err.log"
RESULT_VARIABLE AWK_FAIL)
if(AWK_FAIL)
message(FATAL_ERROR "Failed to generate ${OUTPUT}.tf2")
endif()
#file(REMOVE "${OUTPUT}.tf1")
#file(RENAME "${OUTPUT}.tf2" "${OUTPUT}")
file(COPY_FILE "${OUTPUT}.tf2" "${OUTPUT}")
else()
message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}")
endif()