diff --git a/CMake/options.cmake b/CMake/options.cmake index 3dd9a5687..ac6f313b5 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -435,11 +435,33 @@ if (OPTION_USE_SYSTEM_LIBPNG) endif () if (OPTION_USE_SYSTEM_LIBPNG AND PNG_FOUND) + set (FLTK_USE_BUILTIN_PNG FALSE) set (FLTK_PNG_LIBRARIES ${PNG_LIBRARIES}) - include_directories (${PNG_INCLUDE_DIR}) + include_directories (${PNG_INCLUDE_DIRS}) add_definitions (${PNG_DEFINITIONS}) -else() + + set (_INCLUDE_SAVED ${CMAKE_REQUIRED_INCLUDES}) + list (APPEND CMAKE_REQUIRED_INCLUDES ${PNG_INCLUDE_DIRS}) + + # FIXME - Force search! Maybe use cache to check for option changes? + + unset (HAVE_PNG_H CACHE) + unset (HAVE_LIBPNG_PNG_H CACHE) + + check_include_files (png.h HAVE_PNG_H) + mark_as_advanced (HAVE_PNG_H) + + if (NOT HAVE_PNG_H) + check_include_files (libpng/png.h HAVE_LIBPNG_PNG_H) + mark_as_advanced (HAVE_LIBPNG_PNG_H) +endif () + + set (CMAKE_REQUIRED_INCLUDES ${_INCLUDE_SAVED}) + unset (_INCLUDE_SAVED) + +else () + if (OPTION_USE_SYSTEM_LIBPNG) message (STATUS "cannot find system png library - using built-in\n") endif () @@ -450,11 +472,10 @@ else() set (HAVE_PNG_H 1) set (HAVE_PNG_GET_VALID 1) set (HAVE_PNG_SET_TRNS_TO_ALPHA 1) + set (HAVE_LIBPNG_PNG_H 0) include_directories (${CMAKE_CURRENT_SOURCE_DIR}/png) endif () -set (HAVE_LIBPNG 1) - ####################################################################### if (X11_Xinerama_FOUND) option (OPTION_USE_XINERAMA "use lib Xinerama" ON) diff --git a/CMake/resources.cmake b/CMake/resources.cmake index 6841a5101..b38156711 100644 --- a/CMake/resources.cmake +++ b/CMake/resources.cmake @@ -52,10 +52,8 @@ include (FindPkgConfig) fl_find_header (HAVE_ALSA_ASOUNDLIB_H alsa/asoundlib.h) fl_find_header (HAVE_DLFCN_H dlfcn.h) fl_find_header (HAVE_GL_GLU_H GL/glu.h) -fl_find_header (HAVE_LIBPNG_PNG_H libpng/png.h) fl_find_header (HAVE_LOCALE_H locale.h) fl_find_header (HAVE_OPENGL_GLU_H OpenGL/glu.h) -fl_find_header (HAVE_PNG_H png.h) fl_find_header (HAVE_STDIO_H stdio.h) fl_find_header (HAVE_STRINGS_H strings.h) fl_find_header (HAVE_SYS_SELECT_H sys/select.h) @@ -128,8 +126,8 @@ endif (NOT HAVE_DIRENT_H) mark_as_advanced (HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H) mark_as_advanced (HAVE_GL_GLU_H) -mark_as_advanced (HAVE_LIBPNG_PNG_H HAVE_LOCALE_H HAVE_NDIR_H) -mark_as_advanced (HAVE_OPENGL_GLU_H HAVE_PNG_H) +mark_as_advanced (HAVE_OPENGL_GLU_H) +mark_as_advanced (HAVE_LOCALE_H HAVE_NDIR_H) mark_as_advanced (HAVE_PTHREAD_H HAVE_PTHREAD_MUTEX_RECURSIVE) mark_as_advanced (HAVE_STDIO_H HAVE_STRINGS_H HAVE_SYS_DIR_H) mark_as_advanced (HAVE_SYS_NDIR_H HAVE_SYS_SELECT_H)