Warning, /graphics/digikam/project/bundles/3rdparty/ext_libjxl/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # Script to build jpegXL library for digiKam bundle.
0002 #
0003 # Copyright (c) 2015-2024 by Gilles Caulier  <caulier dot gilles at gmail dot com>
0004 #
0005 # Redistribution and use is allowed according to the terms of the BSD license.
0006 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0007 #
0008 
0009 set(PREFIX_ext_libjxl "${EXTPREFIX}")
0010 
0011 set(JpegXL_Conf -DBUILD_SHARED_LIBS=ON
0012                 -DBUILD_TESTING=OFF
0013                 -DJPEGXL_ENABLE_EXAMPLES=OFF
0014                 -DJPEGXL_ENABLE_PLUGINS=OFF
0015                 -DJPEGXL_ENABLE_TOOLS=OFF
0016                 -DJPEGXL_ENABLE_FUZZERS=OFF
0017                 -DJPEGXL_ENABLE_DEVTOOLS=OFF
0018                 -DJPEGXL_ENABLE_JPEGLI=OFF
0019                 -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=ON
0020                 -DJPEGXL_ENABLE_DOXYGEN=OFF
0021                 -DJPEGXL_ENABLE_MANPAGES=OFF
0022                 -DJPEGXL_ENABLE_BENCHMARK=OFF
0023                 -DJPEGXL_BUNDLE_LIBPNG=OFF
0024                 -DJPEGXL_ENABLE_JNI=OFF
0025                 -DJPEGXL_ENABLE_SJPEG=OFF
0026                 -DJPEGXL_ENABLE_OPENEXR=OFF
0027                 -DJPEGXL_ENABLE_SKCMS=OFF
0028                 -DJPEGXL_BUNDLE_SKCMS=OFF
0029                 -DJPEGXL_ENABLE_VIEWERS=OFF
0030                 -DJPEGXL_ENABLE_TCMALLOC=OFF
0031                 -DJPEGXL_ENABLE_COVERAGE=OFF
0032                 -DJPEGXL_ENABLE_PROFILER=OFF
0033                 -DJPEGXL_ENABLE_SIZELESS_VECTORS=OFF
0034                 -DJPEGXL_ENABLE_TRANSCODE_JPEG=ON
0035                 -DJPEGXL_ENABLE_BOXES=ON
0036                 -DJPEGXL_STATIC=OFF
0037                 -DJPEGXL_WARNINGS_AS_ERRORS=OFF
0038                 -DJPEGXL_FORCE_NEON=OFF
0039                 -DJPEGXL_FORCE_SYSTEM_BROTLI=OFF
0040                 -DJPEGXL_FORCE_SYSTEM_GTEST=OFF
0041                 -DJPEGXL_FORCE_SYSTEM_LCMS2=OFF
0042                 -DJPEGXL_FORCE_SYSTEM_HWY=OFF
0043 )
0044 
0045 if(MINGW)
0046 
0047     # See bug comment https://bugs.kde.org/show_bug.cgi?id=436533#c26
0048 
0049     set(JpegXL_Conf ${JpegXL_Conf}
0050         -DCMAKE_CXX_FLAGS="-DHWY_COMPILE_ONLY_SCALAR"
0051     )
0052 
0053 endif()
0054 
0055 JoinListAsString("${JpegXL_Conf}" " " BASH_OPTIONS)
0056 
0057 if(MINGW)
0058 
0059     ExternalProject_Add(ext_libjxl
0060         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0061 
0062         GIT_REPOSITORY https://github.com/libjxl/libjxl.git
0063         GIT_TAG v0.8.2
0064 
0065         CONFIGURE_COMMAND git submodule update --init --recursive --depth 1 --recommend-shallow &&
0066                           cp -f ${CMAKE_CURRENT_SOURCE_DIR}/../../../../bootstrap.mxe <SOURCE_DIR>/. &&
0067                           <SOURCE_DIR>/bootstrap.mxe ${MXE_BUILDROOT} RelWithDebInfo ${BASH_OPTIONS}
0068 
0069         BUILD_COMMAND cd <SOURCE_DIR>/build.mxe && $(MAKE) -j
0070 
0071         INSTALL_COMMAND cd <SOURCE_DIR>/build.mxe && $(MAKE) install/fast
0072 
0073         BUILD_IN_SOURCE 1
0074 
0075         UPDATE_COMMAND ""
0076         ALWAYS 0
0077     )
0078 
0079 elseif(APPLE)
0080 
0081     ExternalProject_Add(ext_libjxl
0082         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0083 
0084         # To use official release tarball
0085 
0086         GIT_REPOSITORY https://github.com/libjxl/libjxl.git
0087         GIT_TAG v0.8.2
0088 
0089         CONFIGURE_COMMAND git submodule update --init --recursive --depth 1 --recommend-shallow &&
0090                           cp -f ${CMAKE_CURRENT_SOURCE_DIR}/../../../../bootstrap.macports <SOURCE_DIR>/. &&
0091                           <SOURCE_DIR>/bootstrap.macports ${PREFIX_ext_libjxl} RelWithDebInfo x86_64 ${BASH_OPTIONS}
0092 
0093         BUILD_COMMAND cd <SOURCE_DIR>/build && $(MAKE)
0094 
0095         INSTALL_COMMAND cd <SOURCE_DIR>/build && $(MAKE) install/fast
0096 
0097         BUILD_IN_SOURCE 1
0098 
0099         UPDATE_COMMAND ""
0100         ALWAYS 0
0101     )
0102 
0103 else() # Linux
0104 
0105     ExternalProject_Add(ext_libjxl
0106         DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0107 
0108         GIT_REPOSITORY https://github.com/libjxl/libjxl.git
0109         GIT_TAG v0.8.2
0110 
0111         CONFIGURE_COMMAND git submodule update --init --recursive --depth 1 --recommend-shallow &&
0112                           $(CMAKE_COMMAND) . -DCMAKE_INSTALL_PREFIX=${PREFIX_ext_libjxl}
0113                                              -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE}
0114                                              -DICONV_INCLUDE_DIR=${PREFIX_ext_libjxl}/include
0115                                              ${JpegXL_Conf}
0116                                              ${GLOBAL_PROFILE}
0117 
0118         BUILD_COMMAND cd <SOURCE_DIR> && $(MAKE)
0119 
0120         INSTALL_COMMAND cd <SOURCE_DIR> && $(MAKE) install/fast
0121 
0122         BUILD_IN_SOURCE 1
0123 
0124         UPDATE_COMMAND ""
0125         ALWAYS 0
0126     )
0127 
0128 endif()