mirror of https://github.com/fltk/fltk
CMake: improve detection and configuration of image libs
Also: fix old (pre 3.13) link_directories() usage
This commit is contained in:
parent
2555e3b37e
commit
a484541d4b
|
@ -117,9 +117,9 @@ macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
|
|||
|
||||
if (FLTK_HAVE_CAIRO)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.13")
|
||||
link_directories (${TARGET_NAME} PUBLIC ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
link_directories (${PKG_CAIRO_LIBRARY_DIRS})
|
||||
else()
|
||||
target_link_directories (${TARGET_NAME} PUBLIC ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
target_link_directories (${TARGET_NAME} PRIVATE ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
endif()
|
||||
endif (FLTK_HAVE_CAIRO)
|
||||
|
||||
|
|
|
@ -168,11 +168,16 @@ if (OPTION_CAIRO OR OPTION_CAIROEXT)
|
|||
endif (OPTION_CAIROEXT)
|
||||
add_subdirectory (cairo)
|
||||
|
||||
# fl_debug_var (PKG_CAIRO_INCLUDE_DIRS)
|
||||
# fl_debug_var (PKG_CAIRO_CFLAGS)
|
||||
# fl_debug_var (PKG_CAIRO_STATIC_CFLAGS)
|
||||
# fl_debug_var (PKG_CAIRO_LIBRARIES)
|
||||
# fl_debug_var (PKG_CAIRO_STATIC_LIBRARIES)
|
||||
if (0)
|
||||
fl_debug_var (PKG_CAIRO_INCLUDE_DIRS)
|
||||
fl_debug_var (PKG_CAIRO_CFLAGS)
|
||||
fl_debug_var (PKG_CAIRO_LIBRARIES)
|
||||
fl_debug_var (PKG_CAIRO_LIBRARY_DIRS)
|
||||
fl_debug_var (PKG_CAIRO_STATIC_INCLUDE_DIRS)
|
||||
fl_debug_var (PKG_CAIRO_STATIC_CFLAGS)
|
||||
fl_debug_var (PKG_CAIRO_STATIC_LIBRARIES)
|
||||
fl_debug_var (PKG_CAIRO_STATIC_LIBRARY_DIRS)
|
||||
endif()
|
||||
|
||||
include_directories (${PKG_CAIRO_INCLUDE_DIRS})
|
||||
|
||||
|
@ -339,87 +344,92 @@ endif (debug_threads)
|
|||
unset (debug_threads)
|
||||
|
||||
#######################################################################
|
||||
option (OPTION_USE_SYSTEM_ZLIB "use system zlib" ON)
|
||||
# Image Library Options
|
||||
#######################################################################
|
||||
|
||||
option (OPTION_USE_SYSTEM_ZLIB "use system zlib" ON)
|
||||
|
||||
if (APPLE)
|
||||
option (OPTION_USE_SYSTEM_LIBJPEG "use system libjpeg" OFF)
|
||||
option (OPTION_USE_SYSTEM_LIBPNG "use system libpng" OFF)
|
||||
else ()
|
||||
option (OPTION_USE_SYSTEM_LIBJPEG "use system libjpeg" ON)
|
||||
option (OPTION_USE_SYSTEM_LIBPNG "use system libpng" ON)
|
||||
endif ()
|
||||
|
||||
#######################################################################
|
||||
# Image Library : ZLIB
|
||||
#######################################################################
|
||||
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
include (FindZLIB)
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
find_package (ZLIB)
|
||||
endif ()
|
||||
|
||||
if (ZLIB_FOUND)
|
||||
if (OPTION_USE_SYSTEM_ZLIB AND ZLIB_FOUND)
|
||||
set (FLTK_USE_BUILTIN_ZLIB FALSE)
|
||||
set (FLTK_ZLIB_LIBRARIES ${ZLIB_LIBRARIES})
|
||||
include_directories (${ZLIB_INCLUDE_DIRS})
|
||||
set (FLTK_BUILTIN_ZLIB_FOUND FALSE)
|
||||
else()
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
message (STATUS "cannot find system zlib library - using built-in\n")
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
endif ()
|
||||
|
||||
add_subdirectory (zlib)
|
||||
set (FLTK_USE_BUILTIN_ZLIB TRUE)
|
||||
set (FLTK_ZLIB_LIBRARIES fltk_z)
|
||||
set (ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib)
|
||||
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/zlib)
|
||||
set (FLTK_BUILTIN_ZLIB_FOUND TRUE)
|
||||
endif (ZLIB_FOUND)
|
||||
endif ()
|
||||
|
||||
set (HAVE_LIBZ 1)
|
||||
|
||||
#######################################################################
|
||||
if (APPLE)
|
||||
option (OPTION_USE_SYSTEM_LIBJPEG "use system libjpeg" OFF)
|
||||
else ()
|
||||
option (OPTION_USE_SYSTEM_LIBJPEG "use system libjpeg" ON)
|
||||
endif (APPLE)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
include (FindJPEG)
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
find_package (JPEG)
|
||||
endif ()
|
||||
|
||||
if (JPEG_FOUND)
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND)
|
||||
set (FLTK_USE_BUILTIN_JPEG FALSE)
|
||||
set (FLTK_JPEG_LIBRARIES ${JPEG_LIBRARIES})
|
||||
include_directories (${JPEG_INCLUDE_DIR})
|
||||
set (FLTK_BUILTIN_JPEG_FOUND FALSE)
|
||||
else ()
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
message (STATUS "cannot find system jpeg library - using built-in\n")
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
endif ()
|
||||
|
||||
add_subdirectory (jpeg)
|
||||
set (FLTK_USE_BUILTIN_JPEG TRUE)
|
||||
set (FLTK_JPEG_LIBRARIES fltk_jpeg)
|
||||
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/jpeg)
|
||||
set (FLTK_BUILTIN_JPEG_FOUND TRUE)
|
||||
endif (JPEG_FOUND)
|
||||
endif ()
|
||||
|
||||
set (HAVE_LIBJPEG 1)
|
||||
|
||||
#######################################################################
|
||||
if (APPLE)
|
||||
option (OPTION_USE_SYSTEM_LIBPNG "use system libpng" OFF)
|
||||
else ()
|
||||
option (OPTION_USE_SYSTEM_LIBPNG "use system libpng" ON)
|
||||
endif (APPLE)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
include (FindPNG)
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
find_package (PNG)
|
||||
endif ()
|
||||
|
||||
if (PNG_FOUND)
|
||||
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})
|
||||
add_definitions (${PNG_DEFINITIONS})
|
||||
set (FLTK_BUILTIN_PNG_FOUND FALSE)
|
||||
else()
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
message (STATUS "cannot find system png library - using built-in\n")
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
endif ()
|
||||
|
||||
add_subdirectory (png)
|
||||
set (FLTK_USE_BUILTIN_PNG TRUE)
|
||||
set (FLTK_PNG_LIBRARIES fltk_png)
|
||||
set (HAVE_PNG_H 1)
|
||||
set (HAVE_PNG_GET_VALID 1)
|
||||
set (HAVE_PNG_SET_TRNS_TO_ALPHA 1)
|
||||
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/png)
|
||||
set (FLTK_BUILTIN_PNG_FOUND TRUE)
|
||||
endif (PNG_FOUND)
|
||||
endif ()
|
||||
|
||||
set (HAVE_LIBPNG 1)
|
||||
|
||||
|
|
|
@ -72,9 +72,9 @@ endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
|||
target_link_libraries (fluid fltk fltk_images fltk_forms)
|
||||
if (FLTK_HAVE_CAIRO)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.13")
|
||||
link_directories (fluid PUBLIC ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
link_directories (${PKG_CAIRO_LIBRARY_DIRS})
|
||||
else()
|
||||
target_link_directories (fluid PUBLIC ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
target_link_directories (fluid PRIVATE ${PKG_CAIRO_LIBRARY_DIRS})
|
||||
endif()
|
||||
endif (FLTK_HAVE_CAIRO)
|
||||
|
||||
|
|
|
@ -1,36 +1,56 @@
|
|||
#
|
||||
# JPEG library CMake configuration for the Fast Light Toolkit (FLTK).
|
||||
#
|
||||
# Copyright 1998-2021 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
|
||||
#
|
||||
|
||||
# memmgr back ends: compile only one of these into a working library
|
||||
# (For now, let's use the mode that requires the image fit into memory.
|
||||
# This is the recommended mode for Win32 anyway.)
|
||||
set(systemdependent_SRCS jmemnobs.c)
|
||||
|
||||
set (systemdependent_SRCS jmemnobs.c)
|
||||
|
||||
# library object files common to compression and decompression
|
||||
set(common_SRCS
|
||||
jaricom.c jcomapi.c jutils.c jerror.c jmemmgr.c
|
||||
|
||||
set (common_SRCS
|
||||
jaricom.c jcomapi.c jutils.c jerror.c jmemmgr.c
|
||||
)
|
||||
|
||||
# compression library object files
|
||||
set(compression_SRCS
|
||||
jcapimin.c jcapistd.c jcarith.c jctrans.c jcparam.c jdatadst.c jcinit.c
|
||||
jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
|
||||
jcsample.c jchuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
|
||||
jfdctint.c
|
||||
|
||||
set (compression_SRCS
|
||||
jcapimin.c jcapistd.c jcarith.c jctrans.c jcparam.c jdatadst.c jcinit.c
|
||||
jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
|
||||
jcsample.c jchuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
|
||||
jfdctint.c
|
||||
)
|
||||
|
||||
# decompression library object files
|
||||
set(decompression_SRCS
|
||||
jdapimin.c jdapistd.c jdarith.c jdtrans.c jdatasrc.c jdmaster.c
|
||||
jdinput.c jdmarker.c jdhuff.c jdmainct.c jdcoefct.c
|
||||
jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c
|
||||
jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
|
||||
|
||||
set (decompression_SRCS
|
||||
jdapimin.c jdapistd.c jdarith.c jdtrans.c jdatasrc.c jdmaster.c
|
||||
jdinput.c jdmarker.c jdhuff.c jdmainct.c jdcoefct.c
|
||||
jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c
|
||||
jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
|
||||
)
|
||||
|
||||
list(APPEND BUILD_SRCS "${systemdependent_SRCS};${common_SRCS}")
|
||||
list(APPEND BUILD_SRCS "${compression_SRCS};${decompression_SRCS}")
|
||||
list (APPEND BUILD_SRCS "${systemdependent_SRCS};${common_SRCS}")
|
||||
list (APPEND BUILD_SRCS "${compression_SRCS};${decompression_SRCS}")
|
||||
|
||||
#######################################################################
|
||||
|
||||
# Suppress some Visual Studio compiler warnings
|
||||
|
||||
set (msvc_warnings /wd4267)
|
||||
|
||||
#######################################################################
|
||||
|
@ -48,6 +68,7 @@ endif (MSVC)
|
|||
#######################################################################
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
FL_ADD_LIBRARY (fltk_jpeg SHARED "${BUILD_SRCS}")
|
||||
|
||||
if (MSVC)
|
||||
|
|
|
@ -39,29 +39,32 @@ set(PNG_SRCS
|
|||
)
|
||||
|
||||
#######################################################################
|
||||
FL_ADD_LIBRARY(fltk_png STATIC "${PNG_SRCS}")
|
||||
# install the png headers
|
||||
install(FILES png.h;pngconf.h;pnglibconf.h
|
||||
DESTINATION ${FLTK_INCLUDEDIR}/FL/images
|
||||
# Build the static library
|
||||
#######################################################################
|
||||
|
||||
FL_ADD_LIBRARY (fltk_png STATIC "${PNG_SRCS}")
|
||||
target_link_libraries (fltk_png ${FLTK_ZLIB_LIBRARIES})
|
||||
|
||||
#######################################################################
|
||||
# Build the shared library (optional)
|
||||
#######################################################################
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
FL_ADD_LIBRARY (fltk_png SHARED "${PNG_SRCS}")
|
||||
|
||||
if (FLTK_USE_BUILTIN_ZLIB)
|
||||
target_link_libraries (fltk_png_SHARED fltk_z_SHARED)
|
||||
else()
|
||||
target_link_libraries (fltk_png_SHARED ${FLTK_ZLIB_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
endif ()
|
||||
|
||||
#######################################################################
|
||||
# Install the library headers
|
||||
#######################################################################
|
||||
|
||||
install (FILES png.h pngconf.h pnglibconf.h
|
||||
DESTINATION ${FLTK_INCLUDEDIR}/FL/images
|
||||
)
|
||||
|
||||
if(OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries(fltk_png ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_png fltk_z)
|
||||
endif(OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
#######################################################################
|
||||
if(OPTION_BUILD_SHARED_LIBS)
|
||||
#######################################################################
|
||||
FL_ADD_LIBRARY(fltk_png SHARED "${PNG_SRCS}")
|
||||
|
||||
if(OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries(fltk_png_SHARED ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_png_SHARED fltk_z_SHARED)
|
||||
endif(OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
#######################################################################
|
||||
endif(OPTION_BUILD_SHARED_LIBS)
|
||||
#######################################################################
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
#
|
||||
# ZLIB library CMake configuration for the Fast Light Toolkit (FLTK).
|
||||
#
|
||||
# Copyright 1998-2021 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 zlib
|
||||
|
||||
set (ZLIB_SRCS
|
||||
adler32.c
|
||||
compress.c
|
||||
|
@ -21,6 +37,7 @@ set (ZLIB_SRCS
|
|||
#######################################################################
|
||||
|
||||
# Suppress some Visual Studio compiler warnings
|
||||
|
||||
set (msvc_warnings /wd4267 /wd4996)
|
||||
|
||||
#######################################################################
|
||||
|
@ -38,6 +55,7 @@ endif (MSVC)
|
|||
#######################################################################
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
FL_ADD_LIBRARY (fltk_z SHARED "${ZLIB_SRCS}")
|
||||
|
||||
if (MSVC)
|
||||
|
|
Loading…
Reference in New Issue