mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	 cd0ea2a7f5
			
		
	
	
		cd0ea2a7f5
		
	
	
	
	
		
			
			Fix the issue of a
    clang: error: no such file or directory: 'x86_64'
error on building universal binaries on macOS.
It is also necessary to specify:
    -DCMAKE_C_FLAGS="-DPNG_ARM_NEON_OPT=0"
Example CMake command:
    cmake -S libpng \
          -B build_libpng \
          -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
          -DCMAKE_C_FLAGS="-DPNG_ARM_NEON_OPT=0"
Signed-off-by: Cosmin Truta <ctruta@gmail.com>
		
	
			
		
			
				
	
	
		
			94 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # 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}"
 | |
|                   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}")
 | |
| else()
 | |
|   message(FATAL_ERROR "Unsupported conversion: ${INPUTEXT} to ${OUTPUTEXT}")
 | |
| endif()
 |