diff options
Diffstat (limited to 'jpeg')
| -rw-r--r-- | jpeg/CMakeLists.txt | 91 |
1 files changed, 60 insertions, 31 deletions
diff --git a/jpeg/CMakeLists.txt b/jpeg/CMakeLists.txt index f65f71636..c1ec4fae8 100644 --- a/jpeg/CMakeLists.txt +++ b/jpeg/CMakeLists.txt @@ -1,7 +1,7 @@ # # JPEG library CMake configuration for the Fast Light Toolkit (FLTK). # -# Copyright 1998-2023 by Bill Spitzak and others. +# 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 @@ -18,70 +18,99 @@ # (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}") ####################################################################### +# Set common variables for static and shared builds +####################################################################### + +set(_include_dirs + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:include> +) -# Suppress some Visual Studio compiler warnings +# Suppress Visual Studio compiler warnings -set (msvc_warnings /wd4267) +set(msvc_warnings /wd4267) ####################################################################### # Build the static library ####################################################################### -FL_ADD_LIBRARY (fltk_jpeg STATIC "${BUILD_SRCS}") +fl_add_library(fltk_jpeg STATIC "${BUILD_SRCS}") +set(target fltk_jpeg) + +target_include_directories(${target} PUBLIC ${_include_dirs}) + +if(MSVC) + target_compile_options(${target} PRIVATE ${msvc_warnings}) +endif(MSVC) -if (MSVC) - target_compile_options (fltk_jpeg PRIVATE ${msvc_warnings}) -endif (MSVC) +list(APPEND FLTK_IMAGE_LIBRARIES fltk::jpeg) + +# Propagate to parent scope (modified by fl_add_library and here) +set(FLTK_LIBRARIES ${FLTK_LIBRARIES} PARENT_SCOPE) +set(FLTK_IMAGE_LIBRARIES ${FLTK_IMAGE_LIBRARIES} PARENT_SCOPE) ####################################################################### # Build the shared library (optional) ####################################################################### -if (OPTION_BUILD_SHARED_LIBS) +if(FLTK_BUILD_SHARED_LIBS) + + # ensure to export all symbols for Windows DLL's + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + + fl_add_library(fltk_jpeg SHARED "${BUILD_SRCS}") + set(target fltk_jpeg-shared) + + target_include_directories(${target} PUBLIC ${_include_dirs}) + + if(MSVC) + target_compile_options(${target} PRIVATE ${msvc_warnings}) + endif(MSVC) - FL_ADD_LIBRARY (fltk_jpeg SHARED "${BUILD_SRCS}") + list(APPEND FLTK_IMAGE_LIBRARIES_SHARED fltk::jpeg-shared) - if (MSVC) - target_compile_options (fltk_jpeg_SHARED PRIVATE ${msvc_warnings}) - endif (MSVC) + # Propagate to parent scope (modified by fl_add_library and here) + set(FLTK_LIBRARIES_SHARED ${FLTK_LIBRARIES_SHARED} PARENT_SCOPE) + set(FLTK_IMAGE_LIBRARIES_SHARED ${FLTK_IMAGE_LIBRARIES_SHARED} PARENT_SCOPE) -endif (OPTION_BUILD_SHARED_LIBS) +endif(FLTK_BUILD_SHARED_LIBS) ####################################################################### # Install the library headers ####################################################################### -install (FILES jconfig.h jerror.h jmorecfg.h jpeglib.h - fltk_jpeg_prefix.h - DESTINATION ${FLTK_INCLUDEDIR}/FL/images +install(FILES + jconfig.h jerror.h jmorecfg.h jpeglib.h fltk_jpeg_prefix.h + DESTINATION + ${FLTK_INCLUDEDIR}/FL/images ) |
