
I'm taking a page from Dolphin's book, and including copies of each dependency's source code. This combines the ease of use of including pre-built libraries instead of needing to navigate a package manager - as is (or was) the case for MSVC - with the portability of using packages. Granted, this method's more of a jack of all trades, master of none, since it's *less* user-friendly than prebuilt packages (compilation times), and you don't get the per-distro compatibility fixes you'd get from a package manager. You can still use system libs if you want. In fact, it's still the default behaviour: compiling the libs manually is just a fallback. I'll add an option to force-enable this soon, however, since it's a nicer way to produce static MSYS2 builds than the hackish nightmare that I was using before. Not to mention, having my own copy of the sources means I can provide my own fixes and tweaks your package manager may not. For example, I can combine MSYS2's FreeType subpixel rendering with vcpkg's fix for SDL2 exporting its symbols in static builds.
44 lines
1.7 KiB
CMake
44 lines
1.7 KiB
CMake
|
|
# 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)
|
|
|
|
# library object files common to compression and decompression
|
|
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
|
|
)
|
|
|
|
# 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
|
|
)
|
|
|
|
list(APPEND BUILD_SRCS "${systemdependent_SRCS};${common_SRCS}")
|
|
list(APPEND BUILD_SRCS "${compression_SRCS};${decompression_SRCS}")
|
|
#######################################################################
|
|
FL_ADD_LIBRARY(fltk_jpeg STATIC "${BUILD_SRCS}")
|
|
# install the jpeg headers
|
|
install(FILES jconfig.h;jerror.h;jmorecfg.h;jpeglib.h
|
|
DESTINATION ${FLTK_INCLUDEDIR}/FL/images
|
|
)
|
|
|
|
#######################################################################
|
|
if(OPTION_BUILD_SHARED_LIBS)
|
|
#######################################################################
|
|
FL_ADD_LIBRARY(fltk_jpeg SHARED "${BUILD_SRCS}")
|
|
|
|
#######################################################################
|
|
endif(OPTION_BUILD_SHARED_LIBS)
|
|
#######################################################################
|