Warning, /graphics/krita/3rdparty/ext_heif/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 SET(EXTPREFIX_heif "${EXTPREFIX}" ) 0002 0003 ExternalProject_Add( 0004 ext_libde265 0005 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0006 URL https://github.com/strukturag/libde265/releases/download/v1.0.8/libde265-1.0.8.tar.gz 0007 URL_HASH SHA1=db8fa137a4681ec092e7546d9155bbaa95938e5e 0008 0009 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Quick-check-for-SSE-support.patch 0010 0011 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} 0012 0013 UPDATE_COMMAND "" 0014 ) 0015 0016 if (WIN32) 0017 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") 0018 ExternalProject_Add( 0019 ext_nasm 0020 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0021 URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-win64.zip 0022 URL_HASH SHA256=f5c93c146f52b4f1664fa3ce6579f961a910e869ab0dae431bd871bdd2584ef2 0023 0024 BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying nasm 64-bit dependencies 0025 CONFIGURE_COMMAND "" 0026 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/rdoff ${EXTPREFIX_heif}/bin/rdoff 0027 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/nasm.exe ${EXTPREFIX_heif}/bin/nasm.exe 0028 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/ndisasm.exe ${EXTPREFIX_heif}/bin/ndisasm.exe 0029 0030 UPDATE_COMMAND "" 0031 ) 0032 else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") 0033 ExternalProject_Add( 0034 ext_nasm 0035 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0036 URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip 0037 URL_HASH SHA256=258c7d1076e435511cf2fdf94e2281eadbdb9e3003fd57f356f446e2bce3119e 0038 0039 BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying nasm 32-bit dependencies 0040 CONFIGURE_COMMAND "" 0041 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/rdoff ${EXTPREFIX_heif}/bin/rdoff 0042 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/nasm.exe ${EXTPREFIX_heif}/bin/nasm.exe 0043 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/ndisasm.exe ${EXTPREFIX_heif}/bin/ndisasm.exe 0044 0045 UPDATE_COMMAND "" 0046 ) 0047 endif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") 0048 else (WIN32) 0049 ExternalProject_Add( 0050 ext_nasm 0051 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0052 URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz 0053 URL_HASH SHA256=9182a118244b058651c576baa9d0366ee05983c4d4ae1d9ddd3236a9f2304997 0054 0055 CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} 0056 0057 UPDATE_COMMAND "" 0058 ) 0059 endif(WIN32) 0060 0061 0062 set(EXTRA_AVIF_DEPS "") 0063 0064 find_package(Perl) 0065 if(NOT PERL_FOUND AND WIN32) 0066 ExternalProject_Add( 0067 ext_strawberryperl 0068 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0069 # From https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-32bit-portable.zip 0070 URL https://files.kde.org/krita/build/dependencies/strawberry-perl-5.32.1.1-32bit-portable.zip 0071 URL_HASH SHA1=28bca91cadd6651c2b2463db8587c170bf17f2fa 0072 0073 BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying Strawberry Perl portable 0074 CONFIGURE_COMMAND "" 0075 INSTALL_COMMAND "" 0076 UPDATE_COMMAND "" 0077 0078 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/Strawberry" 0079 ) 0080 set(USE_STRAWBERRYPERL 1) 0081 set(LIBAOM_EXTRA_CMAKE_ARGS -DPERL_EXECUTABLE=${CMAKE_CURRENT_BINARY_DIR}/Strawberry/perl/bin/perl.exe) 0082 set(LIBAOM_STRAWBERRYPERL_DEP ext_strawberryperl) 0083 elseif(PERL_FOUND AND WIN32) 0084 set(LIBAOM_EXTRA_CMAKE_ARGS -DPERL_EXECUTABLE=${PERL_EXECUTABLE}) 0085 endif() 0086 0087 if(NOT WIN32) 0088 set(LIBAOM_EXTRA_CMAKE_ARGS -DCONFIG_PIC=1) 0089 endif() 0090 0091 if(PERL_FOUND OR USE_STRAWBERRYPERL) 0092 message(STATUS "Building AVIF support using libaom.") 0093 0094 ExternalProject_Add( 0095 ext_libaom 0096 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0097 0098 URL https://storage.googleapis.com/aom-releases/libaom-3.5.0.tar.gz 0099 URL_HASH SHA256=d37dbee372e2430a7efde813984ae6d78bdf1fc4080ebe32457c9115408b0738 0100 0101 CMAKE_ARGS ${LIBAOM_EXTRA_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DENABLE_EXAMPLES=OFF -DENABLE_TESTDATA=OFF -DENABLE_TESTS=OFF -DENABLE_TOOLS=OFF ${GLOBAL_PROFILE} 0102 0103 UPDATE_COMMAND "" 0104 0105 DEPENDS ext_nasm ${LIBAOM_STRAWBERRYPERL_DEP} 0106 ) 0107 0108 set(EXTRA_AVIF_DEPS ext_libaom) 0109 else() 0110 message(WARNING "Perl not available, disabling AVIF support.") 0111 endif() 0112 0113 # Incorporate Handbrake's extensions for building x265 0114 # Multicoreware added detection of SSE2/3/4.1, so we can freely enable them now 0115 # Also ship their patch for Apple silicon 0116 if (MSVC) 0117 set(x265_LIBDIR "$<CONFIG>/") 0118 set(x265_LIBRARY x265-static.lib) 0119 set(x265_10bit_LIBRARY x265_main10-static.lib) 0120 set(x265_12bit_LIBRARY x265_main12-static.lib) 0121 set(x265_EXTRA_LINK_FLAGS /LIBPATH:${EXTPREFIX_heif}/lib) 0122 else() 0123 set(x265_LIBDIR "") 0124 set(x265_LIBRARY libx265.a) 0125 set(x265_10bit_LIBRARY libx265_main10.a) 0126 set(x265_12bit_LIBRARY libx265_main12.a) 0127 set(x265_EXTRA_LINK_FLAGS -L${EXTPREFIX_heif}/lib) 0128 endif() 0129 ExternalProject_Add(ext_libx265_10bit 0130 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0131 URL https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/x265-snapshot-20220709-12716.tar.gz 0132 URL_HASH SHA256=19ef8b21301f13d795601184884859e9f4a2f87fcda83757bd7dcd588056e926 0133 0134 SOURCE_SUBDIR source/ 0135 0136 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A01-build-fix.patch 0137 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A02-threads-priority.patch 0138 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A03-threads-pool-adjustments.patch 0139 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A04-64-bit_for_aarch64.patch 0140 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A05-disable-scanPosLast-aarch64-asm.patch 0141 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A06-common-threading.patch 0142 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Silence-nasm-2.15-warnings.patch 0143 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-Skip-PDB-in-MinGW.patch 0144 0145 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DHIGH_BIT_DEPTH=TRUE -DEXPORT_C_API=FALSE -DENABLE_CLI=FALSE -DENABLE_SHARED=FALSE 0146 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${x265_LIBDIR}${x265_LIBRARY} ${EXTPREFIX_heif}/lib/${x265_10bit_LIBRARY} 0147 0148 DEPENDS ext_nasm 0149 ) 0150 ExternalProject_Add(ext_libx265_12bit 0151 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0152 URL https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/x265-snapshot-20220709-12716.tar.gz 0153 URL_HASH SHA256=19ef8b21301f13d795601184884859e9f4a2f87fcda83757bd7dcd588056e926 0154 0155 SOURCE_SUBDIR source/ 0156 0157 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A01-build-fix.patch 0158 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A02-threads-priority.patch 0159 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A03-threads-pool-adjustments.patch 0160 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A04-64-bit_for_aarch64.patch 0161 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A05-disable-scanPosLast-aarch64-asm.patch 0162 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A06-common-threading.patch 0163 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Silence-nasm-2.15-warnings.patch 0164 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-Skip-PDB-in-MinGW.patch 0165 0166 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} 0167 -DHIGH_BIT_DEPTH=TRUE -DMAIN12=TRUE -DEXPORT_C_API=FALSE -DENABLE_CLI=FALSE -DENABLE_SHARED=FALSE 0168 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${x265_LIBDIR}${x265_LIBRARY} ${EXTPREFIX_heif}/lib/${x265_12bit_LIBRARY} 0169 0170 DEPENDS ext_nasm 0171 ) 0172 ExternalProject_Add( 0173 ext_libx265 0174 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0175 URL https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/x265-snapshot-20220709-12716.tar.gz 0176 URL_HASH SHA256=19ef8b21301f13d795601184884859e9f4a2f87fcda83757bd7dcd588056e926 0177 0178 SOURCE_SUBDIR source/ 0179 0180 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A01-build-fix.patch 0181 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A02-threads-priority.patch 0182 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A03-threads-pool-adjustments.patch 0183 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A04-64-bit_for_aarch64.patch 0184 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A05-disable-scanPosLast-aarch64-asm.patch 0185 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A06-common-threading.patch 0186 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Silence-nasm-2.15-warnings.patch 0187 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-Skip-PDB-in-MinGW.patch 0188 0189 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DENABLE_SHARED=TRUE -DENABLE_HDR10_PLUS=TRUE -DEXTRA_LIB:String=${x265_10bit_LIBRARY}$<SEMICOLON>${x265_12bit_LIBRARY} -DEXTRA_LINK_FLAGS:String=${x265_EXTRA_LINK_FLAGS} -DLINKED_10BIT=TRUE -DLINKED_12BIT=TRUE 0190 0191 UPDATE_COMMAND "" 0192 0193 DEPENDS ext_nasm ext_libx265_10bit ext_libx265_12bit 0194 ) 0195 0196 ExternalProject_Add( 0197 ext_libheif 0198 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0199 0200 URL https://github.com/strukturag/libheif/releases/download/v1.13.0/libheif-1.13.0.tar.gz 0201 URL_HASH SHA256=c20ae01bace39e89298f6352f1ff4a54b415b33b9743902da798e8a1e51d7ca1 0202 0203 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/clang-aom-link-pthread.patch 0204 0205 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DBUILD_EXAMPLES=OFF ${GLOBAL_PROFILE} 0206 0207 UPDATE_COMMAND "" 0208 DEPENDS ${EXTRA_AVIF_DEPS} ext_libde265 ext_libx265 ext_jpeg ext_png 0209 )