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 ExternalProject_Add( 0018 ext_nasm 0019 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0020 URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-win64.zip 0021 URL_HASH SHA256=f5c93c146f52b4f1664fa3ce6579f961a910e869ab0dae431bd871bdd2584ef2 0022 0023 BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying nasm 64-bit dependencies 0024 CONFIGURE_COMMAND "" 0025 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/rdoff ${EXTPREFIX_heif}/bin/rdoff 0026 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/nasm.exe ${EXTPREFIX_heif}/bin/nasm.exe 0027 COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/ndisasm.exe ${EXTPREFIX_heif}/bin/ndisasm.exe 0028 0029 UPDATE_COMMAND "" 0030 ) 0031 else (WIN32) 0032 ExternalProject_Add( 0033 ext_nasm 0034 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0035 URL https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz 0036 URL_HASH SHA256=9182a118244b058651c576baa9d0366ee05983c4d4ae1d9ddd3236a9f2304997 0037 0038 CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} 0039 0040 UPDATE_COMMAND "" 0041 0042 # automake has an issue when tryin gto build outside of the course tree 0043 # 'sh: 0: Can't open autogen.sh' 0044 BUILD_IN_SOURCE ON 0045 ) 0046 endif(WIN32) 0047 0048 0049 set(EXTRA_AVIF_DEPS "") 0050 0051 if (WIN32 AND NOT PERL_FOUND) # Implies strawberry perl 0052 set(LIBAOM_STRAWBERRYPERL_DEP ext_strawberryperl) 0053 endif() 0054 0055 if(WIN32 AND PERL_EXECUTABLE) 0056 set(LIBAOM_EXTRA_CMAKE_ARGS -DPERL_EXECUTABLE=${PERL_EXECUTABLE}) 0057 elseif (NOT WIN32) 0058 set(LIBAOM_EXTRA_CMAKE_ARGS -DCONFIG_PIC=1) 0059 endif() 0060 0061 if(PERL_FOUND OR USE_STRAWBERRYPERL) 0062 message(STATUS "Building AVIF support using libaom.") 0063 0064 kis_ExternalProject_Add_with_separate_builds_apple( 0065 ext_libaom 0066 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0067 0068 URL https://storage.googleapis.com/aom-releases/libaom-3.6.1.tar.gz 0069 URL_HASH SHA256=42b862f58b3d00bd3902d2dc469526574f5b012e5b178e6a9652845a113d6887 0070 0071 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-cdef-Disable-MSVC-optimizations-for-filter_block.patch 0072 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/android-cpu-features.patch 0073 0074 # Static library is needed because ffmpeg accesses aom_codec_av1_dx_algo 0075 # which is not exported in Windows compilers. 0076 # 0077 # All boolean libaom-specific 'CONFIG_*' options should have value 0 or 1, because 0078 # they are passed straight to asm files. We cannot use CMake's ON/OFF for them 0079 CMAKE_ARGS ${LIBAOM_EXTRA_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DBUILD_SHARED_LIBS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_TESTDATA=OFF -DENABLE_TESTS=OFF -DENABLE_TOOLS=OFF ${GLOBAL_PROFILE} -DCONFIG_RUNTIME_CPU_DETECT=1 0080 0081 UPDATE_COMMAND "" 0082 0083 DEPENDS ext_nasm ${LIBAOM_STRAWBERRYPERL_DEP} 0084 ) 0085 0086 set(EXTRA_AVIF_DEPS ext_libaom) 0087 else() 0088 message(WARNING "Perl not available, disabling AVIF support.") 0089 endif() 0090 0091 # Incorporate Handbrake's extensions for building x265 0092 # Multicoreware added detection of SSE2/3/4.1, so we can freely enable them now 0093 # Also ship their patch for Apple silicon 0094 if (MSVC) 0095 set(x265_LIBDIR "$<CONFIG>/") 0096 set(x265_LIBRARY x265-static.lib) 0097 set(x265_10bit_LIBRARY x265_main10-static.lib) 0098 set(x265_12bit_LIBRARY x265_main12-static.lib) 0099 set(x265_EXTRA_LINK_FLAGS /LIBPATH:${EXTPREFIX_heif}/lib) 0100 else() 0101 set(x265_LIBDIR "") 0102 set(x265_LIBRARY libx265.a) 0103 set(x265_10bit_LIBRARY libx265_main10.a) 0104 set(x265_12bit_LIBRARY libx265_main12.a) 0105 set(x265_EXTRA_LINK_FLAGS -L${EXTPREFIX_heif}/lib) 0106 endif() 0107 ExternalProject_Add(ext_libx265_10bit 0108 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0109 URL https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/x265-snapshot-20220709-12716.tar.gz 0110 URL_HASH SHA256=19ef8b21301f13d795601184884859e9f4a2f87fcda83757bd7dcd588056e926 0111 0112 SOURCE_SUBDIR source/ 0113 0114 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A01-build-fix.patch 0115 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A02-threads-priority.patch 0116 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A03-threads-pool-adjustments.patch 0117 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A04-64-bit_for_aarch64.patch 0118 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A05-disable-scanPosLast-aarch64-asm.patch 0119 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A06-common-threading.patch 0120 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Silence-nasm-2.15-warnings.patch 0121 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-Skip-PDB-in-MinGW.patch 0122 0123 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 0124 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${x265_LIBDIR}${x265_LIBRARY} ${EXTPREFIX_heif}/lib/${x265_10bit_LIBRARY} 0125 UPDATE_COMMAND "" 0126 0127 DEPENDS ext_nasm 0128 ) 0129 ExternalProject_Add(ext_libx265_12bit 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} 0146 -DHIGH_BIT_DEPTH=TRUE -DMAIN12=TRUE -DEXPORT_C_API=FALSE -DENABLE_CLI=FALSE -DENABLE_SHARED=FALSE 0147 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${x265_LIBDIR}${x265_LIBRARY} ${EXTPREFIX_heif}/lib/${x265_12bit_LIBRARY} 0148 UPDATE_COMMAND "" 0149 0150 DEPENDS ext_nasm ext_libx265_10bit 0151 ) 0152 ExternalProject_Add( 0153 ext_libx265 0154 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0155 URL https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/x265-snapshot-20220709-12716.tar.gz 0156 URL_HASH SHA256=19ef8b21301f13d795601184884859e9f4a2f87fcda83757bd7dcd588056e926 0157 0158 SOURCE_SUBDIR source/ 0159 0160 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A01-build-fix.patch 0161 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A02-threads-priority.patch 0162 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A03-threads-pool-adjustments.patch 0163 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A04-64-bit_for_aarch64.patch 0164 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A05-disable-scanPosLast-aarch64-asm.patch 0165 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/A06-common-threading.patch 0166 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Silence-nasm-2.15-warnings.patch 0167 COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-Skip-PDB-in-MinGW.patch 0168 0169 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 0170 0171 UPDATE_COMMAND "" 0172 0173 DEPENDS ext_nasm ext_libx265_12bit 0174 ) 0175 0176 ExternalProject_Add( 0177 ext_libheif 0178 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} 0179 0180 URL https://github.com/strukturag/libheif/releases/download/v1.13.0/libheif-1.13.0.tar.gz 0181 URL_HASH SHA256=c20ae01bace39e89298f6352f1ff4a54b415b33b9743902da798e8a1e51d7ca1 0182 0183 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/clang-aom-link-pthread.patch 0184 0185 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DWITH_EXAMPLES=OFF ${GLOBAL_PROFILE} 0186 0187 UPDATE_COMMAND "" 0188 DEPENDS ${EXTRA_AVIF_DEPS} ext_libde265 ext_libx265 0189 )