# - Try to find png
# You can set PNG_ROOT to specify a certain directory to look in first.
# Once done this will define
# PNG_FOUND - System has png
# PNG_INCLUDE_DIRS - The png include directories
# PNG_LIBRARIES - The libraries needed to use png
# Unless we are unable to find ZLIB
# It also adds an imported target named `3ds::png`, Linking against it is
# equivalent to:
# target_link_libraries(mytarget ${PNG_LIBRARIES})
# target_include_directories(mytarget PRIVATE ${PNG_INCLUDE_DIRS})
if ( NOT N3DS )
message ( FATAL_ERROR "This module can only be used if you are using the 3DS toolchain file. Please erase this build directory or create another one, and then use -DCMAKE_TOOLCHAIN_FILE=DevkitArm3DS.cmake when calling cmake for the 1st time. For more information, see the Readme.md for more information." )
endif ( )
if ( PNG_INCLUDE_DIR )
# Already in cache, be silent
set ( PNG_FIND_QUIETLY TRUE )
endif ( PNG_INCLUDE_DIR )
include ( LibFindMacros )
include ( try_add_imported_target )
libfind_package ( PNG ZLIB )
set ( _PNG_SEARCHES )
# Search PNG_ROOT first if it is set.
if ( PNG_ROOT )
set ( _PNG_SEARCH_ROOT
P A T H S $ { P N G _ R O O T }
N O _ D E F A U L T _ P A T H
N O _ C M A K E _ F I N D _ R O O T _ P A T H )
list ( APPEND _PNG_SEARCHES _PNG_SEARCH_ROOT )
endif ( )
# Search below ${DEVKITPRO}, ${DEVKITARM}, portlibs (if enabled) etc.
set ( _PNG_SEARCH_NORMAL
P A T H S /
N O _ D E F A U L T _ P A T H
O N L Y _ C M A K E _ F I N D _ R O O T _ P A T H )
list ( APPEND _PNG_SEARCHES _PNG_SEARCH_NORMAL )
foreach ( search ${ _PNG_SEARCHES } )
find_path ( PNG_INCLUDE_DIR NAMES png.h
$ { $ { s e a r c h } }
P A T H _ S U F F I X E S i n c l u d e )
find_library ( PNG_LIBRARY NAMES png libpng.a
$ { $ { s e a r c h } }
P A T H _ S U F F I X E S l i b )
endforeach ( )
#find_library(LIBM_LIBRARY NAMES m libm.a
# PATHS / /arm-none-eabi
# PATH_SUFFIXES lib/armv6k/fpu)
set ( LIBM_LIBRARY m )
set ( PNG_PROCESS_INCLUDES PNG_INCLUDE_DIR )
set ( PNG_PROCESS_LIBS PNG_LIBRARY LIBM_LIBRARY )
libfind_process ( PNG )
try_add_imported_target ( PNG m 3ds::zlib )