# # PNG library CMake configuration for the Fast Light Toolkit (FLTK). # # Copyright 1998-2024 by Bill Spitzak and others. # # This library is free software. Distribution and use rights are outlined in # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # # https://www.fltk.org/COPYING.php # # Please see the following page on how to report bugs and issues: # # https://www.fltk.org/bugs.php # # source files for png set(PNG_SRCS png.c pngerror.c pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c ) ####################################################################### # Note: This file is used only if we build the bundled PNG library, # and if we do this we MUST also build and use the *bundled* ZLIB, # hence we also link against the bundled ZLIB. Therefore there's # no need to check which ZLIB version to use in this context. ####################################################################### ####################################################################### # Build some files on ARM (e.g. Apple M1 systems) ####################################################################### # We can only determine the target architecture if it is set # in CMAKE_OSX_ARCHITECTURES, otherwise we *assume* it is true and # compile these files even if this results in some warnings. # This includes all non-macOS platforms. if(CMAKE_OSX_ARCHITECTURES) string(REGEX MATCH "arm64" is_arm "${CMAKE_OSX_ARCHITECTURES}") else() set(is_arm TRUE) endif() if(is_arm) list(APPEND PNG_SRCS arm/arm_init.c arm/filter_neon_intrinsics.c arm/palette_neon_intrinsics.c ) endif() unset(is_arm) ####################################################################### # Build some files on ppc64. # We compile these files whatever the architecture resulting in # void code on non-ppc64 architectures. ####################################################################### list(APPEND PNG_SRCS powerpc/powerpc_init.c powerpc/filter_vsx_intrinsics.c ) ####################################################################### # Build the static library ####################################################################### FL_ADD_LIBRARY (fltk_png STATIC "${PNG_SRCS}") target_link_libraries (fltk_png PUBLIC fltk_z) ####################################################################### # Build the shared library (optional) ####################################################################### if (OPTION_BUILD_SHARED_LIBS) FL_ADD_LIBRARY (fltk_png SHARED "${PNG_SRCS}") target_link_libraries (fltk_png_SHARED PUBLIC fltk_z_SHARED) endif () ####################################################################### # Install the library headers ####################################################################### install (FILES png.h pngconf.h pnglibconf.h pngprefix.h DESTINATION ${FLTK_INCLUDEDIR}/FL/images )