diff --git a/ports/icu/patches/0003-Append-CMAKE_EXECUTABLE_SUFFIX-to-tool-paths.patch b/ports/icu/patches/0003-Support-cross-compilation-in-CMake-build.patch similarity index 66% rename from ports/icu/patches/0003-Append-CMAKE_EXECUTABLE_SUFFIX-to-tool-paths.patch rename to ports/icu/patches/0003-Support-cross-compilation-in-CMake-build.patch index 73909ea..cefb2db 100644 --- a/ports/icu/patches/0003-Append-CMAKE_EXECUTABLE_SUFFIX-to-tool-paths.patch +++ b/ports/icu/patches/0003-Support-cross-compilation-in-CMake-build.patch @@ -1,42 +1,87 @@ ---- a/source/data/CMakeLists.txt 2026-02-05 18:06:41.270799091 -0500 -+++ b/source/data/CMakeLists.txt 2026-02-05 18:07:45.873543869 -0500 -@@ -112,7 +112,7 @@ +diff --git a/source/configure_2nd.cmake b/source/configure_2nd.cmake +index 637c17e..3602c6a 100644 +--- a/source/configure_2nd.cmake ++++ b/source/configure_2nd.cmake +@@ -475,6 +475,14 @@ if(IOS + set(GENCCODE_ASSEMBLY "") + endif() + set(_GENCCODE_ASSEMBLY ${GENCCODE_ASSEMBLY}) ++ ++# Cross-compile override: use assembly mode instead of object code. ++# Native Linux tools cannot generate Windows COFF .obj, so switch to ++# GAS assembly (.S) that clang-cl can compile via its integrated assembler. ++if(ICU_CROSS_COMPILING) ++ set(GENCCODE_ASSEMBLY "-a gcc-mingw64") ++endif() ++ + if(NOT _GENCCODE_ASSEMBLY) + set(_GENCCODE_ASSEMBLY OFF) + endif() +diff --git a/source/data/CMakeLists.txt b/source/data/CMakeLists.txt +index 5a1c466..1e770c2 100644 +--- a/source/data/CMakeLists.txt ++++ b/source/data/CMakeLists.txt +@@ -94,6 +94,12 @@ if(MSVC) + # "ARM\Debug") list(APPEND PKGDATA_OPTS -a # --windows-uwp-arm-build ) endif() + endif() + ++ # When cross-compiling from a non-Windows host, the native Linux pkgdata ++ # binary needs -O to find its configuration (it can't use icu-config). ++ if(ICU_CROSS_COMPILING) ++ list(APPEND PKGDATA_OPTS -O ${ICUPKG_INC}) ++ endif() ++ + else() + set(PKGDATA_OPTS -O ${ICUPKG_INC} # --bldopt + -q # --quiet +@@ -112,7 +118,7 @@ endif() set(ICUPKGDATA_OUTDIR ${OUTDIR}) set(PKGDATA - ${TOOLBINDIR}/pkgdata -+ ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/pkgdata${CMAKE_EXECUTABLE_SUFFIX} ++ ${TOOLBINDIR}/pkgdata${CMAKE_EXECUTABLE_SUFFIX} ${PKGDATA_OPTS} -c # --copyright -s -@@ -183,7 +183,7 @@ +@@ -121,7 +127,7 @@ set(PKGDATA + ${ICUPKGDATA_OUTDIR} # --destdir + ) + +-if(MSVC) ++if(MSVC AND NOT ICU_CROSS_COMPILING) + set(ICUDATA_ASM_FILE ${OUTTMPDIR}/${ICUDATA_PLATFORM_NAME}_dat.obj) + else() + set(ICUDATA_ASM_FILE ${OUTTMPDIR}/${ICUDATA_PLATFORM_NAME}_dat.S) +@@ -183,7 +189,7 @@ if(NOT ICUDATA_SOURCE_ARCHIVE) add_custom_command( OUTPUT ${ICUDATA_SOURCE_ARCHIVE} ${icudata_source_archive_STAMP} - COMMAND ${TOOLBINDIR}/icupkg -t${ICUDATA_CHAR} # --type -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} # --type ++ COMMAND ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} # --type ${ICUDATA_ARCHIVE} ${ICUDATA_SOURCE_ARCHIVE} COMMAND ${CMAKE_COMMAND} -E touch ${icudata_source_archive_STAMP} DEPENDS ${deps_icupkg} ${ICUDATA_ARCHIVE} # ${OUTDIR} -@@ -225,7 +225,7 @@ +@@ -225,7 +231,7 @@ elseif(PKGDATA_MODE STREQUAL "dll" OR PKGDATA_MODE STREQUAL "static") OUTPUT ${PKGDATA_LIST} ${pkgdata_list_STAMP} COMMAND ${CMAKE_COMMAND} -E remove -f ${PKGDATA_LIST} COMMAND - ${TOOLBINDIR}/icupkg -d ${BUILDDIR} # --destdir -+ ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -d ${BUILDDIR} # --destdir ++ ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -d ${BUILDDIR} # --destdir --list -x ${extract_pattern} # --extract ${ICUDATA_SOURCE_ARCHIVE} -o ${PKGDATA_LIST} # --outlist COMMAND ${CMAKE_COMMAND} -E touch ${pkgdata_list_STAMP} ---- a/source/data/rules.cmake 2026-02-05 18:06:41.272384701 -0500 -+++ b/source/data/rules.cmake 2026-02-05 18:07:45.884110040 -0500 -@@ -26,21 +26,21 @@ +diff --git a/source/data/rules.cmake b/source/data/rules.cmake +index fa273f2..4955e6d 100644 +--- a/source/data/rules.cmake ++++ b/source/data/rules.cmake +@@ -26,21 +26,21 @@ add_custom_target( add_custom_command( OUTPUT ${OUT_DIR}/cnvalias.icu - DEPENDS data_dirs ${IN_DIR}/mappings/convrtrs.txt ${TOOLBINDIR}/gencnval - COMMAND ${TOOLBINDIR}/gencnval -s ${IN_DIR} -d ${OUT_DIR} mappings/convrtrs.txt + DEPENDS data_dirs ${IN_DIR}/mappings/convrtrs.txt ${TOOLBINDIR}/gencnval${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/gencnval${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR} -d ${OUT_DIR} mappings/convrtrs.txt ++ COMMAND ${TOOLBINDIR}/gencnval${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR} -d ${OUT_DIR} mappings/convrtrs.txt ) add_custom_command( @@ -44,7 +89,7 @@ - DEPENDS data_dirs ${IN_DIR}/in/ulayout.icu ${TOOLBINDIR}/icupkg - COMMAND ${TOOLBINDIR}/icupkg -t${ICUDATA_CHAR} ${IN_DIR}/in/ulayout.icu ${OUT_DIR}/ulayout.icu + DEPENDS data_dirs ${IN_DIR}/in/ulayout.icu ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/ulayout.icu ${OUT_DIR}/ulayout.icu ++ COMMAND ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/ulayout.icu ${OUT_DIR}/ulayout.icu ) add_custom_command( @@ -53,117 +98,117 @@ - ${IN_DIR}/unidata/confusablesWholeScript.txt ${TOOLBINDIR}/gencfu - COMMAND ${TOOLBINDIR}/gencfu -d ${OUT_DIR} -i ${OUT_DIR} -c -r ${IN_DIR}/unidata/confusables.txt -w + ${IN_DIR}/unidata/confusablesWholeScript.txt ${TOOLBINDIR}/gencfu${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/gencfu${CMAKE_EXECUTABLE_SUFFIX} -d ${OUT_DIR} -i ${OUT_DIR} -c -r ${IN_DIR}/unidata/confusables.txt -w ++ COMMAND ${TOOLBINDIR}/gencfu${CMAKE_EXECUTABLE_SUFFIX} -d ${OUT_DIR} -i ${OUT_DIR} -c -r ${IN_DIR}/unidata/confusables.txt -w ${IN_DIR}/unidata/confusablesWholeScript.txt -o confusables.cfu ) -@@ -50,8 +50,8 @@ +@@ -50,8 +50,8 @@ function(generate_cnv FILE) file(TO_NATIVE_PATH "mappings/${FILE}.ucm" CNV_INPUT) add_custom_command( OUTPUT ${OUT_DIR}/${FILE}.cnv - DEPENDS data_dirs ${IN_DIR}/mappings/${FILE}.ucm ${TOOLBINDIR}/makeconv - COMMAND ${TOOLBINDIR}/makeconv -s ${IN_DIR} -d ${OUT_DIR} -c ${CNV_INPUT} + DEPENDS data_dirs ${IN_DIR}/mappings/${FILE}.ucm ${TOOLBINDIR}/makeconv${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/makeconv${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR} -d ${OUT_DIR} -c ${CNV_INPUT} ++ COMMAND ${TOOLBINDIR}/makeconv${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR} -d ${OUT_DIR} -c ${CNV_INPUT} ) endfunction() -@@ -260,8 +260,8 @@ +@@ -260,8 +260,8 @@ set(BRKITR_BRK_DEPS ${OUT_DIR}/cnvalias.icu ${OUT_DIR}/ulayout.icu) macro(generate_brk FILE) add_custom_command( OUTPUT ${OUT_DIR}/brkitr/${FILE}.brk - DEPENDS data_dirs ${BRKITR_BRK_DEPS} ${IN_DIR}/brkitr/rules/${FILE}.txt ${TOOLBINDIR}/genbrk - COMMAND ${TOOLBINDIR}/genbrk -d ${OUT_DIR} -i ${OUT_DIR} -c -r + DEPENDS data_dirs ${BRKITR_BRK_DEPS} ${IN_DIR}/brkitr/rules/${FILE}.txt ${TOOLBINDIR}/genbrk${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genbrk${CMAKE_EXECUTABLE_SUFFIX} -d ${OUT_DIR} -i ${OUT_DIR} -c -r ++ COMMAND ${TOOLBINDIR}/genbrk${CMAKE_EXECUTABLE_SUFFIX} -d ${OUT_DIR} -i ${OUT_DIR} -c -r ${IN_DIR}/brkitr/rules/${FILE}.txt -o brkitr/${FILE}.brk ) endmacro() -@@ -307,8 +307,8 @@ +@@ -307,8 +307,8 @@ set(SPP_FILES macro(generate_spp FILE) add_custom_command( OUTPUT ${OUT_DIR}/${FILE}.spp - DEPENDS data_dirs ${STRINGPREP_DEPS} ${IN_DIR}/sprep/${FILE}.txt ${TOOLBINDIR}/gensprep - COMMAND ${TOOLBINDIR}/gensprep -s ${IN_DIR}/sprep -d ${OUT_DIR} -i ${OUT_DIR} -b ${SPP_FILE} -m + DEPENDS data_dirs ${STRINGPREP_DEPS} ${IN_DIR}/sprep/${FILE}.txt ${TOOLBINDIR}/gensprep${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/gensprep${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/sprep -d ${OUT_DIR} -i ${OUT_DIR} -b ${SPP_FILE} -m ++ COMMAND ${TOOLBINDIR}/gensprep${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/sprep -d ${OUT_DIR} -i ${OUT_DIR} -b ${SPP_FILE} -m ${IN_DIR}/unidata -u 3.2.0 ${FILE}.txt ) endmacro() -@@ -323,8 +323,8 @@ +@@ -323,8 +323,8 @@ endforeach() function(generate_brkitrdict FILE) add_custom_command( OUTPUT ${OUT_DIR}/brkitr/${FILE}.dict - DEPENDS data_dirs ${IN_DIR}/brkitr/dictionaries/${FILE}.txt ${TOOLBINDIR}/gendict - COMMAND ${TOOLBINDIR}/gendict -i ${OUT_DIR} -c ${BRKITR_DICT_${FILE}_FLAGS} + DEPENDS data_dirs ${IN_DIR}/brkitr/dictionaries/${FILE}.txt ${TOOLBINDIR}/gendict${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/gendict${CMAKE_EXECUTABLE_SUFFIX} -i ${OUT_DIR} -c ${BRKITR_DICT_${FILE}_FLAGS} ++ COMMAND ${TOOLBINDIR}/gendict${CMAKE_EXECUTABLE_SUFFIX} -i ${OUT_DIR} -c ${BRKITR_DICT_${FILE}_FLAGS} ${IN_DIR}/brkitr/dictionaries/${FILE}.txt ${OUT_DIR}/brkitr/${FILE}.dict ) endfunction() -@@ -346,8 +346,8 @@ +@@ -346,8 +346,8 @@ endforeach() function(generate_nrm FILE) add_custom_command( OUTPUT ${OUT_DIR}/${FILE}.nrm - DEPENDS data_dirs ${IN_DIR}/in/${FILE}.nrm ${TOOLBINDIR}/icupkg - COMMAND ${TOOLBINDIR}/icupkg -t${ICUDATA_CHAR} ${IN_DIR}/in/${FILE}.nrm ${OUT_DIR}/${FILE}.nrm + DEPENDS data_dirs ${IN_DIR}/in/${FILE}.nrm ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/${FILE}.nrm ${OUT_DIR}/${FILE}.nrm ++ COMMAND ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/${FILE}.nrm ${OUT_DIR}/${FILE}.nrm ) endfunction() -@@ -361,8 +361,8 @@ +@@ -361,8 +361,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/coll/ucadata.icu - DEPENDS data_dirs ${IN_DIR}/in/coll/ucadata-unihan.icu ${TOOLBINDIR}/icupkg - COMMAND ${TOOLBINDIR}/icupkg -t${ICUDATA_CHAR} ${IN_DIR}/in/coll/ucadata-unihan.icu + DEPENDS data_dirs ${IN_DIR}/in/coll/ucadata-unihan.icu ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/coll/ucadata-unihan.icu ++ COMMAND ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/coll/ucadata-unihan.icu ${OUT_DIR}/coll/ucadata.icu ) -@@ -370,8 +370,8 @@ +@@ -370,8 +370,8 @@ add_custom_command( add_custom_command( OUTPUT ${OUT_DIR}/unames.icu - DEPENDS data_dirs ${IN_DIR}/in/unames.icu ${TOOLBINDIR}/icupkg - COMMAND ${TOOLBINDIR}/icupkg -t${ICUDATA_CHAR} ${IN_DIR}/in/unames.icu ${OUT_DIR}/unames.icu + DEPENDS data_dirs ${IN_DIR}/in/unames.icu ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/unames.icu ${OUT_DIR}/unames.icu ++ COMMAND ${TOOLBINDIR}/icupkg${CMAKE_EXECUTABLE_SUFFIX} -t${ICUDATA_CHAR} ${IN_DIR}/in/unames.icu ${OUT_DIR}/unames.icu ) # misc res -@@ -379,8 +379,8 @@ +@@ -379,8 +379,8 @@ add_custom_command( function(generate_misc_res FILE) add_custom_command( OUTPUT ${OUT_DIR}/${FILE}.res - DEPENDS data_dirs ${IN_DIR}/misc/${FILE}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/misc -d ${OUT_DIR} -i ${OUT_DIR} -k -q ${FILE}.txt + DEPENDS data_dirs ${IN_DIR}/misc/${FILE}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/misc -d ${OUT_DIR} -i ${OUT_DIR} -k -q ${FILE}.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/misc -d ${OUT_DIR} -i ${OUT_DIR} -k -q ${FILE}.txt ) endfunction() -@@ -413,8 +413,8 @@ +@@ -413,8 +413,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/curr/supplementalData.res - DEPENDS data_dirs ${IN_DIR}/curr/supplementalData.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/curr -d ${OUT_DIR}/curr -i ${OUT_DIR} -k -q + DEPENDS data_dirs ${IN_DIR}/curr/supplementalData.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr -i ${OUT_DIR} -k -q ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr -i ${OUT_DIR} -k -q supplementalData.txt ) list(APPEND tmpdep ${OUT_DIR}/curr/supplementalData.res) -@@ -781,20 +781,20 @@ +@@ -781,20 +781,20 @@ add_prefix( add_custom_command( OUTPUT ${OUT_DIR}/translit/root.res - DEPENDS data_dirs ${IN_DIR}/translit/root.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k root.txt + DEPENDS data_dirs ${IN_DIR}/translit/root.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k root.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k root.txt ) add_custom_command( @@ -171,7 +216,7 @@ - DEPENDS data_dirs ${IN_DIR}/translit/en.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k en.txt + DEPENDS data_dirs ${IN_DIR}/translit/en.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k en.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k en.txt ) add_custom_command( @@ -179,271 +224,284 @@ - DEPENDS data_dirs ${IN_DIR}/translit/el.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k el.txt + DEPENDS data_dirs ${IN_DIR}/translit/el.txt ${TRANSLIT_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k el.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/translit -d ${OUT_DIR}/translit/ -i ${OUT_DIR} -k el.txt ) # locales pool -@@ -1645,8 +1645,8 @@ +@@ -1645,8 +1645,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/pool.res - DEPENDS data_dirs ${LOCALES_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --writePoolBundle -k + DEPENDS data_dirs ${LOCALES_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --writePoolBundle -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --writePoolBundle -k ${LOCALES_POOL_WRITE_FILES} ) -@@ -1655,8 +1655,8 @@ +@@ -1655,8 +1655,8 @@ set(LOCALES_RES_DEPS ${OUT_DIR}/pool.res) function(generate_locale_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/locales/${ITEM}.txt ${LOCALES_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --usePoolBundle + DEPENDS data_dirs ${IN_DIR}/locales/${ITEM}.txt ${LOCALES_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --usePoolBundle ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/ -k ${ITEM}.txt ) endfunction() -@@ -1671,8 +1671,8 @@ +@@ -1671,8 +1671,8 @@ endforeach() configure_file(${IN_DIR}/cmake-locales-index-txt-content.in ${TMP_DIR}/locales/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/locales/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt + DEPENDS data_dirs ${TMP_DIR}/locales/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/locales -d ${OUT_DIR}/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) # curr pool -@@ -2231,8 +2231,8 @@ +@@ -2231,8 +2231,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/curr/pool.res - DEPENDS data_dirs ${CURR_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --writePoolBundle -k + DEPENDS data_dirs ${CURR_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --writePoolBundle -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --writePoolBundle -k ${CURR_POOL_WRITE_FILES} ) -@@ -2241,8 +2241,8 @@ +@@ -2241,8 +2241,8 @@ set(CURR_RES_DEPS ${OUT_DIR}/curr/pool.res) function(generate_curr_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/curr/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/curr/${ITEM}.txt ${CURR_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --usePoolBundle + DEPENDS data_dirs ${IN_DIR}/curr/${ITEM}.txt ${CURR_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --usePoolBundle ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/curr/ -k ${ITEM}.txt ) endfunction() -@@ -2257,8 +2257,8 @@ +@@ -2257,8 +2257,8 @@ endforeach() configure_file(${IN_DIR}/cmake-curr-index-txt-content.in ${TMP_DIR}/curr/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/curr/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/curr/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/curr/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/curr -d ${OUT_DIR}/curr/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) list(APPEND tmpdep ${OUT_DIR}/curr/${INDEX_NAME}.res) -@@ -2749,8 +2749,8 @@ +@@ -2749,8 +2749,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/lang/pool.res - DEPENDS data_dirs ${LANG_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --writePoolBundle -k + DEPENDS data_dirs ${LANG_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --writePoolBundle -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --writePoolBundle -k ${LANG_POOL_WRITE_FILES} ) -@@ -2759,8 +2759,8 @@ +@@ -2759,8 +2759,8 @@ set(LANG_RES_DEPS ${OUT_DIR}/lang/pool.res) function(generate_lang_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/lang/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/lang/${ITEM}.txt ${LANG_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --usePoolBundle + DEPENDS data_dirs ${IN_DIR}/lang/${ITEM}.txt ${LANG_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --usePoolBundle ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/lang/ -k ${ITEM}.txt ) endfunction() -@@ -2775,8 +2775,8 @@ +@@ -2775,8 +2775,8 @@ endforeach() configure_file(${IN_DIR}/cmake-lang-index-txt-content.in ${TMP_DIR}/lang/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/lang/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/lang/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/lang/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/lang -d ${OUT_DIR}/lang/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -3265,8 +3265,8 @@ +@@ -3265,8 +3265,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/region/pool.res - DEPENDS data_dirs ${REGION_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} + DEPENDS data_dirs ${REGION_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} --writePoolBundle -k ${REGION_POOL_WRITE_FILES} ) -@@ -3275,8 +3275,8 @@ +@@ -3275,8 +3275,8 @@ set(REGION_RES_DEPS ${OUT_DIR}/region/pool.res) function(generate_region_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/region/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/region/${ITEM}.txt ${REGION_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} + DEPENDS data_dirs ${IN_DIR}/region/${ITEM}.txt ${REGION_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/region/ -k ${ITEM}.txt ) endfunction() -@@ -3291,8 +3291,8 @@ +@@ -3291,8 +3291,8 @@ endforeach() configure_file(${IN_DIR}/cmake-region-index-txt-content.in ${TMP_DIR}/region/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/region/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/region/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/region/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/region -d ${OUT_DIR}/region/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -3781,8 +3781,8 @@ +@@ -3781,8 +3781,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/zone/pool.res - DEPENDS data_dirs ${ZONE_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --writePoolBundle -k + DEPENDS data_dirs ${ZONE_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --writePoolBundle -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --writePoolBundle -k ${ZONE_POOL_WRITE_FILES} ) -@@ -3791,8 +3791,8 @@ +@@ -3791,8 +3791,8 @@ set(ZONE_RES_DEPS ${OUT_DIR}/zone/pool.res) function(generate_zone_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/zone/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/zone/${ITEM}.txt ${ZONE_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --usePoolBundle + DEPENDS data_dirs ${IN_DIR}/zone/${ITEM}.txt ${ZONE_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --usePoolBundle ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/zone/ -k ${ITEM}.txt ) endfunction() -@@ -3807,8 +3807,8 @@ +@@ -3807,8 +3807,8 @@ endforeach() configure_file(${IN_DIR}/cmake-zone-index-txt-content.in ${TMP_DIR}/zone/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/zone/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/zone/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/zone/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/zone -d ${OUT_DIR}/zone/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -4288,8 +4288,8 @@ +@@ -4288,8 +4288,8 @@ endforeach() add_custom_command( OUTPUT ${OUT_DIR}/unit/pool.res - DEPENDS data_dirs ${UNIT_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --writePoolBundle -k + DEPENDS data_dirs ${UNIT_POOL_WRITE_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --writePoolBundle -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --writePoolBundle -k ${UNIT_POOL_WRITE_FILES} ) -@@ -4298,8 +4298,8 @@ +@@ -4298,8 +4298,8 @@ set(UNIT_RES_DEPS ${OUT_DIR}/unit/pool.res) function(generate_unit_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/unit/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/unit/${ITEM}.txt ${UNIT_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --usePoolBundle + DEPENDS data_dirs ${IN_DIR}/unit/${ITEM}.txt ${UNIT_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --usePoolBundle ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} --usePoolBundle ${OUT_DIR}/unit/ -k ${ITEM}.txt ) endfunction() -@@ -4314,8 +4314,8 @@ +@@ -4314,8 +4314,8 @@ endforeach() configure_file(${IN_DIR}/cmake-unit-index-txt-content.in ${TMP_DIR}/unit/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/unit/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/unit/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/unit/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/unit -d ${OUT_DIR}/unit/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -4514,8 +4514,8 @@ +@@ -4514,8 +4514,8 @@ set(COLL_LIST function(generate_coll_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/coll/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/coll/${ITEM}.txt ${COLL_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k ${ITEM}.txt + DEPENDS data_dirs ${IN_DIR}/coll/${ITEM}.txt ${COLL_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k ${ITEM}.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k ${ITEM}.txt ) endfunction() -@@ -4529,8 +4529,8 @@ +@@ -4529,8 +4529,8 @@ endforeach() configure_file(${IN_DIR}/cmake-coll-index-txt-content.in ${TMP_DIR}/coll/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/coll/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/coll/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/coll/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/coll -d ${OUT_DIR}/coll/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -4578,8 +4578,8 @@ +@@ -4578,8 +4578,8 @@ set(BRKITR_RES_LIST function(generate_brkitr_res_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/brkitr/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/brkitr/${ITEM}.txt ${BRKITR_RES_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${IN_DIR}/brkitr/${ITEM}.txt ${BRKITR_RES_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k ${ITEM}.txt ) endfunction() -@@ -4594,8 +4594,8 @@ +@@ -4594,8 +4594,8 @@ endforeach() configure_file(${IN_DIR}/cmake-brkitr-index-txt-content.in ${TMP_DIR}/brkitr/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/brkitr/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/brkitr/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/brkitr/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/brkitr -d ${OUT_DIR}/brkitr/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) -@@ -4714,8 +4714,8 @@ +@@ -4714,8 +4714,8 @@ set(RBNF_LIST function(generate_rbnf_item ITEM) add_custom_command( OUTPUT ${OUT_DIR}/rbnf/${ITEM}.res - DEPENDS data_dirs ${IN_DIR}/rbnf/${ITEM}.txt ${RBNF_DEPS} ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${IN_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k ${ITEM}.txt + DEPENDS data_dirs ${IN_DIR}/rbnf/${ITEM}.txt ${RBNF_DEPS} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k ${ITEM}.txt ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${IN_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k ${ITEM}.txt ) endfunction() -@@ -4729,8 +4729,8 @@ +@@ -4729,8 +4729,8 @@ endforeach() configure_file(${IN_DIR}/cmake-rbnf-index-txt-content.in ${TMP_DIR}/rbnf/${INDEX_NAME}.txt) add_custom_command( OUTPUT ${OUT_DIR}/rbnf/${INDEX_NAME}.res - DEPENDS data_dirs ${TMP_DIR}/rbnf/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb - COMMAND ${TOOLBINDIR}/genrb -s ${TMP_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k + DEPENDS data_dirs ${TMP_DIR}/rbnf/${INDEX_NAME}.txt ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k ++ COMMAND ${TOOLBINDIR}/genrb${CMAKE_EXECUTABLE_SUFFIX} -s ${TMP_DIR}/rbnf -d ${OUT_DIR}/rbnf/ -i ${OUT_DIR} -k ${INDEX_NAME}.txt ) +diff --git a/source/stubdata/CMakeLists.txt b/source/stubdata/CMakeLists.txt +index a109ffa..a1fc969 100644 +--- a/source/stubdata/CMakeLists.txt ++++ b/source/stubdata/CMakeLists.txt +@@ -43,7 +43,7 @@ target_include_directories(${lib_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/common) + + setup_icu_target("${lib_NAME}" "${CMAKE_CURRENT_LIST_DIR}/sources.txt" "${CMAKE_CURRENT_LIST_DIR}") + +-if(CMAKE_HOST_WIN32 ++if(WIN32 + AND BUILD_SHARED_LIBS + AND (MSVC OR MINGW) + ) diff --git a/ports/icu/patches/0004-Copy-stubdata-dll-to-bin-for-cross-compile.patch b/ports/icu/patches/0004-Copy-stubdata-dll-to-bin-for-cross-compile.patch deleted file mode 100644 index d63ae69..0000000 --- a/ports/icu/patches/0004-Copy-stubdata-dll-to-bin-for-cross-compile.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/source/stubdata/CMakeLists.txt -+++ b/source/stubdata/CMakeLists.txt -@@ -43,7 +43,7 @@ - - setup_icu_target("${lib_NAME}" "${CMAKE_CURRENT_LIST_DIR}/sources.txt" "${CMAKE_CURRENT_LIST_DIR}") - --if(CMAKE_HOST_WIN32 -+if(WIN32 - AND BUILD_SHARED_LIBS - AND (MSVC OR MINGW) - ) diff --git a/ports/icu/patches/0004-Cross-compilation-support-for-pkgdata.patch b/ports/icu/patches/0004-Cross-compilation-support-for-pkgdata.patch new file mode 100644 index 0000000..286c200 --- /dev/null +++ b/ports/icu/patches/0004-Cross-compilation-support-for-pkgdata.patch @@ -0,0 +1,47 @@ +diff --git a/source/tools/pkgdata/pkgdata.cpp b/source/tools/pkgdata/pkgdata.cpp +index 3e4cfd7..1516f7d 100644 +--- a/source/tools/pkgdata/pkgdata.cpp ++++ b/source/tools/pkgdata/pkgdata.cpp +@@ -770,12 +770,27 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { + /* Try to detect the arch type, use nullptr if unsuccessful */ + char optMatchArch[10] = { 0 }; + pkg_createOptMatchArch(optMatchArch); ++ ++ /* Determine the CPU architecture string for writeObjectCode. ++ * First check ICU_DATA_CPU_ARCH env var (set during cross- ++ * compilation from a non-Windows host). Otherwise use _M_* ++ * macros which Clang sets for the target architecture. */ ++ const char *optCpuArch = getenv("ICU_DATA_CPU_ARCH"); ++ if (!optCpuArch) { ++#if defined(_M_AMD64) ++ optCpuArch = "x64"; ++#elif defined(_M_ARM64) ++ optCpuArch = "arm64"; ++#elif defined(_M_IX86) ++ optCpuArch = "x86"; ++#endif ++ } + writeObjectCode( + datFileNamePath, + o->tmpDir, + o->entryName, + (optMatchArch[0] == 0 ? nullptr : optMatchArch), +- nullptr, ++ optCpuArch, + nullptr, + gencFilePath, + sizeof(gencFilePath), +@@ -1783,6 +1798,13 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD + static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, UPKGOptions *o) { + int32_t result = 0; + char cmd[LARGE_BUFFER_MAX_SIZE]; ++ ++ /* When cross-compiling from a non-Windows host, the CMake build system ++ * links the data library itself; skip the link/lib step here. */ ++ const char *skipLink = getenv("ICU_SKIP_PKGDATA_LINK"); ++ if (skipLink && skipLink[0] == '1') ++ return 0; ++ + if (IN_STATIC_MODE(mode)) { + char staticLibFilePath[SMALL_BUFFER_MAX_SIZE] = ""; + diff --git a/ports/icu/patches/0005-Pass-optCpuArch-from-pkgdata-to-writeObjectCode.patch b/ports/icu/patches/0005-Pass-optCpuArch-from-pkgdata-to-writeObjectCode.patch deleted file mode 100644 index 58aa1ef..0000000 --- a/ports/icu/patches/0005-Pass-optCpuArch-from-pkgdata-to-writeObjectCode.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/source/tools/pkgdata/pkgdata.cpp -+++ b/source/tools/pkgdata/pkgdata.cpp -@@ -769,14 +769,26 @@ - #ifdef CAN_WRITE_OBJ_CODE - /* Try to detect the arch type, use nullptr if unsuccessful */ - char optMatchArch[10] = { 0 }; - pkg_createOptMatchArch(optMatchArch); -+ -+ /* Determine the CPU architecture string for writeObjectCode. -+ * When using Clang on Windows, the _M_* macros reflect the -+ * target architecture set by the compiler driver. */ -+ const char *optCpuArch = nullptr; -+#if defined(_M_AMD64) -+ optCpuArch = "x64"; -+#elif defined(_M_ARM64) -+ optCpuArch = "arm64"; -+#elif defined(_M_IX86) -+ optCpuArch = "x86"; -+#endif - writeObjectCode( - datFileNamePath, - o->tmpDir, - o->entryName, - (optMatchArch[0] == 0 ? nullptr : optMatchArch), -- nullptr, -+ optCpuArch, - nullptr, - gencFilePath, - sizeof(gencFilePath), - true); diff --git a/ports/icu/patches/0006-Skip-pkgdata-link-step-when-cross-compiling.patch b/ports/icu/patches/0006-Skip-pkgdata-link-step-when-cross-compiling.patch deleted file mode 100644 index a8bafb9..0000000 --- a/ports/icu/patches/0006-Skip-pkgdata-link-step-when-cross-compiling.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/source/tools/pkgdata/pkgdata.cpp -+++ b/source/tools/pkgdata/pkgdata.cpp -@@ -1795,5 +1795,12 @@ - static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, UPKGOptions *o) { - int32_t result = 0; - char cmd[LARGE_BUFFER_MAX_SIZE]; -+ -+ /* When cross-compiling from a non-Windows host, the CMake build system -+ * links the data library itself; skip the link/lib step here. */ -+ const char *skipLink = getenv("ICU_SKIP_PKGDATA_LINK"); -+ if (skipLink && skipLink[0] == '1') -+ return 0; -+ - if (IN_STATIC_MODE(mode)) { - char staticLibFilePath[SMALL_BUFFER_MAX_SIZE] = ""; diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 9b13677..165a812 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -16,18 +16,14 @@ vcpkg_download_distfile(ARCHIVE # Patches set(PATCHES - # CMake files + # CMake build system (third-party LibCMaker) ${CMAKE_CURRENT_LIST_DIR}/patches/0001-Add-CMake-platform.patch - # Patch specifically for vcpkg on top of above + # vcpkg fixup: remove bin64/lib64 install suffix on Windows ${CMAKE_CURRENT_LIST_DIR}/patches/0002-Remove-install-suffix-on-Windows.patch - # Append CMAKE_EXECUTABLE_SUFFIX and CMAKE_CROSSCOMPILING_EMULATOR to tool paths for cross-compilation - ${CMAKE_CURRENT_LIST_DIR}/patches/0003-Append-CMAKE_EXECUTABLE_SUFFIX-to-tool-paths.patch - # Copy stubdata DLL to bin/ during cross-compilation (not just native Windows) - ${CMAKE_CURRENT_LIST_DIR}/patches/0004-Copy-stubdata-dll-to-bin-for-cross-compile.patch - # Pass optCpuArch to writeObjectCode to avoid nullptr dereference with clang - ${CMAKE_CURRENT_LIST_DIR}/patches/0005-Pass-optCpuArch-from-pkgdata-to-writeObjectCode.patch - # Allow overriding link.exe/LIB.exe via env vars for cross-compilation - ${CMAKE_CURRENT_LIST_DIR}/patches/0006-Skip-pkgdata-link-step-when-cross-compiling.patch + # Cross-compilation support for CMake build files + ${CMAKE_CURRENT_LIST_DIR}/patches/0003-Support-cross-compilation-in-CMake-build.patch + # Cross-compilation support for pkgdata tool + ${CMAKE_CURRENT_LIST_DIR}/patches/0004-Cross-compilation-support-for-pkgdata.patch ) # Extract archive @@ -45,6 +41,64 @@ set(BUILD_OPTIONS -DICU_ENABLE_TESTS=OFF ) +# When cross-compiling from a non-Windows host (e.g. Linux -> Windows), build +# native host tools first, then use them for the cross-compile. This avoids +# needing Wine to run cross-compiled .exe tools. +if (VCPKG_CROSSCOMPILING AND NOT VCPKG_HOST_IS_WINDOWS AND NOT DEFINED ICU_CROSS_BUILD_ROOT) + message(STATUS "Building native ICU host tools for cross-compilation...") + set(HOST_BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-host") + + # Use ICU's autotools build for the native host tools. The CMake build + # system (from patch 0001) has bugs that only manifest on native Linux + # (lowercase list(append), missing sources.txt for escapesrc), so autotools + # is more reliable here. The resulting bin/ layout is the same either way. + file(MAKE_DIRECTORY "${HOST_BUILD_DIR}") + execute_process( + COMMAND "${CMAKE_COMMAND}" -E env --unset=CC --unset=CXX --unset=CFLAGS --unset=CXXFLAGS --unset=LDFLAGS + "${SOURCE_PATH}/source/configure" + --disable-shared --enable-static + --disable-extras --disable-icuio + --disable-layout --disable-layoutex + --disable-tests --disable-samples + WORKING_DIRECTORY "${HOST_BUILD_DIR}" + COMMAND_ERROR_IS_FATAL ANY + ) + include(ProcessorCount) + ProcessorCount(NPROC) + if (NPROC EQUAL 0) + set(NPROC 1) + endif () + execute_process( + COMMAND make -j${NPROC} + WORKING_DIRECTORY "${HOST_BUILD_DIR}" + COMMAND_ERROR_IS_FATAL ANY + ) + + set(ICU_CROSS_BUILD_ROOT "${HOST_BUILD_DIR}") + + # The CMake cross-compile system expects config/icucross.cmake in the host + # build root (normally generated by a CMake host build). Since we used + # autotools, generate it manually. It just sets TOOLBINDIR and TOOLLIBDIR. + file(MAKE_DIRECTORY "${HOST_BUILD_DIR}/config") + file(WRITE "${HOST_BUILD_DIR}/config/icucross.cmake" + "set(CROSS_ICU_VERSION ${VERSION})\n" + "set(TOOLBINDIR \${ICU_CROSS_BUILDROOT}/bin)\n" + "set(TOOLLIBDIR \${ICU_CROSS_BUILDROOT}/lib)\n" + ) + + # Patch 0003 appends CMAKE_EXECUTABLE_SUFFIX (.exe) to tool paths in the + # data CMakeLists.txt. CMake's Windows platform module forces this to .exe, + # overriding any cache variable. Create .exe symlinks so the suffixed paths + # resolve to the native Linux binaries. + set(HOST_TOOLS icupkg pkgdata genrb genccode gencmn gennorm2 gensprep + makeconv genbrk gencfu gencnval gendict) + foreach (tool ${HOST_TOOLS}) + if (EXISTS "${HOST_BUILD_DIR}/bin/${tool}" AND NOT EXISTS "${HOST_BUILD_DIR}/bin/${tool}.exe") + file(CREATE_LINK "${HOST_BUILD_DIR}/bin/${tool}" "${HOST_BUILD_DIR}/bin/${tool}.exe" SYMBOLIC) + endif () + endforeach () +endif () + # Check for a cross compile if (DEFINED ICU_CROSS_BUILD_ROOT) message(STATUS "Cross compiling ICU") @@ -59,11 +113,23 @@ else () set(ENABLE_TOOLS ON) endif () -# When cross-compiling for Windows from a non-Windows host, pkgdata.exe runs -# under Wine but cannot invoke link.exe/LIB.exe. The CMake build links the -# data library itself, so skip the redundant link step in pkgdata (patch 0006). -if (NOT VCPKG_HOST_IS_WINDOWS AND ENABLE_TOOLS) +# When building from a non-Windows host, pkgdata cannot invoke link.exe/LIB.exe. +# The CMake build links the data library itself, so skip the redundant link step +# in pkgdata (patch 0006). This applies whether tools are built locally or +# pre-built native host tools are used via ICU_CROSS_BUILD_ROOT. +if (NOT VCPKG_HOST_IS_WINDOWS) set(ENV{ICU_SKIP_PKGDATA_LINK} 1) + + # Tell the native Linux pkgdata binary which CPU architecture to target + # when generating COFF object code (patch 0005). On native Windows the + # _M_* macros handle this, but a Linux-built pkgdata needs the env var. + if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(ENV{ICU_DATA_CPU_ARCH} "arm64") + elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(ENV{ICU_DATA_CPU_ARCH} "x64") + elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(ENV{ICU_DATA_CPU_ARCH} "x86") + endif () endif () vcpkg_cmake_configure( diff --git a/ports/icu/vcpkg.json b/ports/icu/vcpkg.json index edd372e..9c59957 100644 --- a/ports/icu/vcpkg.json +++ b/ports/icu/vcpkg.json @@ -1,7 +1,7 @@ { "name": "icu", "version": "77.1.0", - "port-version": 2, + "port-version": 3, "description": "ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software.", "homepage": "http://site.icu-project.org", "license": "ICU", diff --git a/ports/libwebp/0002-cmake-config.patch b/ports/libwebp/0002-cmake-config.patch new file mode 100644 index 0000000..ad19140 --- /dev/null +++ b/ports/libwebp/0002-cmake-config.patch @@ -0,0 +1,20 @@ +diff --git a/cmake/WebPConfig.cmake.in b/cmake/WebPConfig.cmake.in +index a0d721f..8726c09 100644 +--- a/cmake/WebPConfig.cmake.in ++++ b/cmake/WebPConfig.cmake.in +@@ -13,7 +13,14 @@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") + set_and_check(WebP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + set(WebP_INCLUDE_DIRS ${WebP_INCLUDE_DIR}) + set(WEBP_INCLUDE_DIRS ${WebP_INCLUDE_DIR}) +-set(WebP_LIBRARIES "@INSTALLED_LIBRARIES@") ++set(WebP_LIBRARIES "") ++include(SelectLibraryConfigurations) ++foreach(_vcpkg_libwebp_lib IN ITEMS @INSTALLED_LIBRARIES@ sharpyuv) ++ find_library(_vcpkg_${_vcpkg_libwebp_lib}_LIBRARY_RELEASE NAMES ${_vcpkg_libwebp_lib} lib${_vcpkg_libwebp_lib} NAMES_PER_DIR PATHS "${VCPKG_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) ++ find_library(_vcpkg_${_vcpkg_libwebp_lib}_LIBRARY_DEBUG NAMES ${_vcpkg_libwebp_lib}d lib${_vcpkg_libwebp_lib}d ${_vcpkg_libwebp_lib} lib${_vcpkg_libwebp_lib} NAMES_PER_DIR PATHS "${VCPKG_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH) ++ select_library_configurations(_vcpkg_${_vcpkg_libwebp_lib}) ++ list(APPEND WebP_LIBRARIES ${_vcpkg_${_vcpkg_libwebp_lib}_LIBRARIES}) ++endforeach() + set(WEBP_LIBRARIES "${WebP_LIBRARIES}") + + check_required_components(WebP) diff --git a/ports/libwebp/0003-simd.patch b/ports/libwebp/0003-simd.patch new file mode 100644 index 0000000..e477d6b --- /dev/null +++ b/ports/libwebp/0003-simd.patch @@ -0,0 +1,23 @@ +diff --git a/cmake/cpu.cmake b/cmake/cpu.cmake +index 3b0b2d37..a376b87b 100644 +--- a/cmake/cpu.cmake ++++ b/cmake/cpu.cmake +@@ -50,7 +50,7 @@ if(MSVC AND CMAKE_C_COMPILER_ID STREQUAL "MSVC") + if(MSVC_VERSION GREATER_EQUAL 1800 AND NOT CMAKE_C_FLAGS MATCHES "/arch:") + set(SIMD_ENABLE_FLAGS) + else() +- set(SIMD_ENABLE_FLAGS "/arch:AVX2;/arch:AVX;/arch:SSE2;;;;") ++ set(SIMD_ENABLE_FLAGS ";;/arch:SSE2;;;;") # /arch:AVX2;/arch:AVX is too much for SSE4 + endif() + set(SIMD_DISABLE_FLAGS) + else() +@@ -111,6 +111,9 @@ foreach(I_SIMD RANGE ${WEBP_SIMD_FLAGS_RANGE}) + "${CMAKE_CURRENT_LIST_DIR}/../src/dsp/*${WEBP_SIMD_FILE_EXTENSION}") + if(WEBP_HAVE_${WEBP_SIMD_FLAG}) + # Memorize the file and flags. ++ if("${SIMD_COMPILE_FLAG}" STREQUAL "") ++ set(SIMD_COMPILE_FLAG " ") ++ endif() + foreach(FILE ${SIMD_FILES}) + list(APPEND WEBP_SIMD_FILES_TO_INCLUDE ${FILE}) + list(APPEND WEBP_SIMD_FLAGS_TO_INCLUDE ${SIMD_COMPILE_FLAG}) diff --git a/ports/libwebp/0008-sdl.patch b/ports/libwebp/0008-sdl.patch new file mode 100644 index 0000000..7622ca4 --- /dev/null +++ b/ports/libwebp/0008-sdl.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b785a8e..f214a32 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -665,6 +665,10 @@ if(WEBP_BUILD_EXTRAS) + ${CMAKE_CURRENT_BINARY_DIR}/src ${SDL2_INCLUDE_DIRS}) + set(WEBP_HAVE_SDL 1) + target_compile_definitions(vwebp_sdl PUBLIC WEBP_HAVE_SDL) ++ target_compile_definitions(vwebp_sdl PRIVATE WEBP_HAVE_JUST_SDL_H) ++ if(WIN32) ++ target_link_libraries(vwebp_sdl dxguid winmm) ++ endif() + + set(CMAKE_REQUIRED_INCLUDES "${SDL2_INCLUDE_DIRS}") + check_c_source_compiles( +@@ -699,8 +703,9 @@ if(WEBP_BUILD_WEBP_JS) + if(NOT WEBP_ENABLE_SIMD) + # JavaScript version + add_executable(webp_js ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) +- target_link_libraries(webp_js webpdecoder SDL2) ++ target_link_libraries(webp_js webpdecoder ${SDL_LIBRARY}) + target_include_directories(webp_js PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) ++ target_include_directories(webp_js PRIVATE ${SDL_INCLUDE_DIR}) + set(WEBP_HAVE_SDL 1) + set_target_properties( + webp_js +@@ -715,12 +720,15 @@ if(WEBP_BUILD_WEBP_JS) + -sALLOW_MEMORY_GROWTH") + set_target_properties(webp_js PROPERTIES OUTPUT_NAME webp) + target_compile_definitions(webp_js PUBLIC EMSCRIPTEN WEBP_HAVE_SDL) ++ target_compile_definitions(webp_js PUBLIC EMSCRIPTEN WEBP_HAVE_JUST_SDL_H) + endif() + + # WASM version + add_executable(webp_wasm ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) +- target_link_libraries(webp_wasm webpdecoder SDL2) ++ target_link_libraries(webp_wasm webpdecoder ${SDL_LIBRARY}) + target_include_directories(webp_wasm PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) ++ target_include_directories(webp_wasm PRIVATE ${SDL_INCLUDE_DIR}) ++ target_compile_definitions(webp_wasm PUBLIC EMSCRIPTEN WEBP_HAVE_JUST_SDL_H) + set_target_properties( + webp_wasm + PROPERTIES diff --git a/ports/libwebp/0009-cpufeatures-android.patch b/ports/libwebp/0009-cpufeatures-android.patch new file mode 100644 index 0000000..812fcae --- /dev/null +++ b/ports/libwebp/0009-cpufeatures-android.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 39d3d8f6..6169be39 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -185,24 +185,8 @@ if(WEBP_ENABLE_WUNUSED_RESULT) + endif() + + # ############################################################################## +-# Android only. +-if(ANDROID) +- include_directories(${ANDROID_NDK}/sources/android/cpufeatures) +- add_library(cpufeatures-webp STATIC +- ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c) +- list(APPEND INSTALLED_LIBRARIES cpufeatures-webp) +- target_link_libraries(cpufeatures-webp dl) +- set(SHARPYUV_DEP_LIBRARIES ${SHARPYUV_DEP_LIBRARIES} cpufeatures-webp) +- set(WEBP_DEP_LIBRARIES ${WEBP_DEP_LIBRARIES} cpufeatures-webp) +- set(cpufeatures_include_dir ${ANDROID_NDK}/sources/android/cpufeatures) +- set(SHARPYUV_DEP_INCLUDE_DIRS ${SHARPYUV_DEP_INCLUDE_DIRS} +- ${cpufeatures_include_dir}) +- set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS} ${cpufeatures_include_dir}) +- add_definitions(-DHAVE_CPU_FEATURES_H=1) +- set(HAVE_CPU_FEATURES_H 1) +-else() +- set(HAVE_CPU_FEATURES_H 0) +-endif() ++# To streamline dependency management, remove usage of the NDK-bundled cpufeatures. ++set(HAVE_CPU_FEATURES_H 0) + + function(configure_pkg_config FILE) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.in" diff --git a/ports/libwebp/0010-fix-clang-cl-simd.patch b/ports/libwebp/0010-fix-clang-cl-simd.patch new file mode 100644 index 0000000..3039773 --- /dev/null +++ b/ports/libwebp/0010-fix-clang-cl-simd.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/cpu.cmake b/cmake/cpu.cmake +index a376b87..6934e24 100644 +--- a/cmake/cpu.cmake ++++ b/cmake/cpu.cmake +@@ -41,7 +41,7 @@ endfunction() + set(WEBP_SIMD_FLAGS "AVX2;SSE41;SSE2;MIPS32;MIPS_DSP_R2;NEON;MSA") + set(WEBP_SIMD_FILE_EXTENSIONS + "_avx2.c;_sse41.c;_sse2.c;_mips32.c;_mips_dsp_r2.c;_neon.c;_msa.c") +-if(MSVC AND CMAKE_C_COMPILER_ID STREQUAL "MSVC") ++if(MSVC) + # With at least Visual Studio 12 (2013)+ /arch is not necessary to build SSE2 + # or SSE4 code unless a lesser /arch is forced. MSVC does not have a SSE4 + # flag, but an AVX one. Using that with SSE4 code risks generating illegal diff --git a/ports/libwebp/portfile.cmake b/ports/libwebp/portfile.cmake new file mode 100644 index 0000000..7a958a8 --- /dev/null +++ b/ports/libwebp/portfile.cmake @@ -0,0 +1,77 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO webmproject/libwebp + REF "v${VERSION}" + SHA512 298e0ad4c09392213baf5abb69d330c6203b618800073fe2df91d01d35034197c5d3e29a74573b06971473c52c74514f0e6e0f6c8162f923e2dd15cb1a692aef + HEAD_REF master + PATCHES + # 0002-0009 are from upstream vcpkg; 0010 is ours (clang-cl ARM64 fix) + 0002-cmake-config.patch + 0003-simd.patch + 0008-sdl.patch + 0009-cpufeatures-android.patch + 0010-fix-clang-cl-simd.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + anim WEBP_BUILD_ANIM_UTILS + cwebp WEBP_BUILD_CWEBP + dwebp WEBP_BUILD_DWEBP + extras WEBP_BUILD_EXTRAS + gif2webp WEBP_BUILD_GIF2WEBP + img2webp WEBP_BUILD_IMG2WEBP + info WEBP_BUILD_WEBPINFO + libwebpmux WEBP_BUILD_LIBWEBPMUX + mux WEBP_BUILD_WEBPMUX + nearlossless WEBP_NEAR_LOSSLESS + simd WEBP_ENABLE_SIMD + swap16bitcsp WEBP_ENABLE_SWAP_16BIT_CSP + unicode WEBP_UNICODE + vwebp WEBP_BUILD_VWEBP + vwebp-sdl CMAKE_REQUIRE_FIND_PACKAGE_SDL + INVERTED_FEATURES + vwebp-sdl CMAKE_DISABLE_FIND_PACKAGE_SDL +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + OPTIONS_DEBUG + -DWEBP_BUILD_ANIM_UTILS=OFF + -DWEBP_BUILD_CWEBP=OFF + -DWEBP_BUILD_DWEBP=OFF + -DWEBP_BUILD_EXTRAS=OFF + -DWEBP_BUILD_GIF2WEBP=OFF + -DWEBP_BUILD_IMG2WEBP=OFF + -DWEBP_BUILD_VWEBP=OFF + -DWEBP_BUILD_WEBPINFO=OFF + -DWEBP_BUILD_WEBPMUX=OFF + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_SDL + CMAKE_REQUIRE_FIND_PACKAGE_SDL +) + +vcpkg_cmake_install() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(PACKAGE_NAME WebP CONFIG_PATH share/WebP/cmake) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +vcpkg_fixup_pkgconfig() + +vcpkg_list(SET BIN_NAMES) +foreach(tool IN ITEMS get_disto gif2webp img2webp vwebp vwebp_sdl webpinfo webpmux webp_quality cwebp dwebp) + if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + vcpkg_list(APPEND BIN_NAMES "${tool}") + endif() +endforeach() +if(NOT BIN_NAMES STREQUAL "") + vcpkg_copy_tools(TOOL_NAMES ${BIN_NAMES} AUTO_CLEAN) +endif() + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/PATENTS) diff --git a/ports/libwebp/usage b/ports/libwebp/usage new file mode 100644 index 0000000..da6b265 --- /dev/null +++ b/ports/libwebp/usage @@ -0,0 +1,9 @@ +libwebp provides CMake targets: + + find_package(WebP CONFIG REQUIRED) + # basic usage + target_link_libraries(main PRIVATE WebP::webp WebP::webpdecoder WebP::webpdemux) + # for manipulating the WebP graphics format container (port feature libwebpmux) + target_link_libraries(main PRIVATE WebP::libwebpmux) + # for sharp RGB to YUV conversion + target_link_libraries(main PRIVATE WebP::sharpyuv) diff --git a/ports/libwebp/vcpkg.json b/ports/libwebp/vcpkg.json new file mode 100644 index 0000000..4af03f8 --- /dev/null +++ b/ports/libwebp/vcpkg.json @@ -0,0 +1,215 @@ +{ + "name": "libwebp", + "version": "1.6.0", + "port-version": 2, + "description": "WebP codec: library to encode and decode images in WebP format", + "homepage": "https://github.com/webmproject/libwebp", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "libwebp", + "default-features": false, + "features": [ + "unicode" + ], + "platform": "windows" + }, + { + "name": "libwebp", + "default-features": false, + "features": [ + "simd" + ], + "platform": "osx & x64" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "libwebpmux", + "nearlossless", + { + "name": "simd", + "platform": "!emscripten" + } + ], + "features": { + "all": { + "description": "enable all features except for swap16bitcsp", + "dependencies": [ + { + "name": "libwebp", + "features": [ + "anim", + "cwebp", + "dwebp", + "extras", + "gif2webp", + "img2webp", + "info", + "libwebpmux", + "mux", + "nearlossless", + "simd" + ] + }, + { + "name": "libwebp", + "features": [ + "vwebp" + ], + "platform": "!osx & !static" + }, + { + "name": "libwebp", + "features": [ + "vwebp-sdl" + ], + "platform": "!android & !osx & !uwp & !(windows & static)" + } + ] + }, + "anim": { + "description": "Build animation utilities.", + "dependencies": [ + "giflib", + "libjpeg-turbo", + "libpng", + { + "name": "libwebp", + "default-features": false, + "features": [ + "img2webp", + "mux" + ] + }, + { + "name": "tiff", + "default-features": false + } + ] + }, + "cwebp": { + "description": "Build the cwebp command line tool.", + "dependencies": [ + "libjpeg-turbo", + "libpng", + { + "name": "tiff", + "default-features": false + } + ] + }, + "dwebp": { + "description": "Build the dwebp command line tool.", + "dependencies": [ + "libjpeg-turbo", + "libpng", + { + "name": "tiff", + "default-features": false + } + ] + }, + "extras": { + "description": "Build extras. (Doesn't include vwebp-sdl.)", + "dependencies": [ + "libjpeg-turbo", + "libpng", + { + "name": "tiff", + "default-features": false + } + ] + }, + "gif2webp": { + "description": "Build the gif2webp conversion tool.", + "dependencies": [ + "giflib", + { + "name": "libwebp", + "default-features": false, + "features": [ + "libwebpmux" + ] + } + ] + }, + "img2webp": { + "description": "Build the img2webp animation tool.", + "dependencies": [ + "libjpeg-turbo", + "libpng", + { + "name": "libwebp", + "default-features": false, + "features": [ + "libwebpmux" + ] + }, + { + "name": "tiff", + "default-features": false + } + ] + }, + "info": { + "description": "Build the webpinfo command line tool." + }, + "libwebpmux": { + "description": "Build the libwebpmux library" + }, + "mux": { + "description": "Build the webpmux command line tool.", + "dependencies": [ + { + "name": "libwebp", + "default-features": false, + "features": [ + "libwebpmux" + ] + } + ] + }, + "nearlossless": { + "description": "Enable near-lossless encoding" + }, + "simd": { + "description": "Enable any SIMD optimization." + }, + "swap16bitcsp": { + "description": "Enable byte swap for 16 bit colorspaces." + }, + "unicode": { + "description": "Build Unicode executables. (Adds definition UNICODE and _UNICODE)" + }, + "vwebp": { + "description": "Build the vwebp viewer tool.", + "supports": "!osx & !(windows & static)", + "dependencies": [ + "freeglut", + "opengl" + ] + }, + "vwebp-sdl": { + "description": "Build the vwebp viewer tool for SDL.", + "dependencies": [ + { + "name": "libwebp", + "default-features": false, + "features": [ + "extras", + "vwebp" + ] + }, + "sdl1" + ] + } + } +} diff --git a/ports/zlib-ng/0001-fix-clang-cl-neon.patch b/ports/zlib-ng/0001-fix-clang-cl-neon.patch new file mode 100644 index 0000000..fe0a699 --- /dev/null +++ b/ports/zlib-ng/0001-fix-clang-cl-neon.patch @@ -0,0 +1,84 @@ +diff --git a/arch/arm/acle_intrins.h b/arch/arm/acle_intrins.h +index 8335c9c..c9cc2be 100644 +--- a/arch/arm/acle_intrins.h ++++ b/arch/arm/acle_intrins.h +@@ -2,7 +2,7 @@ + #define ARM_ACLE_INTRINS_H + + #include +-#ifdef _MSC_VER ++#if defined(_MSC_VER) && !defined(__clang__) + # include + #elif defined(HAVE_ARM_ACLE_H) + # include +@@ -15,7 +15,7 @@ + # define Z_TARGET_CRC + #endif + +-#if !defined(ARM_CRC32_INTRIN) && !defined(_MSC_VER) ++#if !defined(ARM_CRC32_INTRIN) && (!defined(_MSC_VER) || defined(__clang__)) + #ifdef __aarch64__ + static inline uint32_t __crc32b(uint32_t __a, uint8_t __b) { + uint32_t __c; +@@ -67,7 +67,7 @@ static inline uint32_t __crc32d(uint32_t __a, uint64_t __b) { + #endif + + #ifdef ARM_SIMD +-#ifdef _MSC_VER ++#if defined(_MSC_VER) && !defined(__clang__) + typedef uint32_t uint16x2_t; + + #define __uqsub16 _arm_uqsub16 +diff --git a/arch/arm/neon_intrins.h b/arch/arm/neon_intrins.h +index a24887c..89daf77 100644 +--- a/arch/arm/neon_intrins.h ++++ b/arch/arm/neon_intrins.h +@@ -1,7 +1,7 @@ + #ifndef ARM_NEON_INTRINS_H + #define ARM_NEON_INTRINS_H + +-#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC)) ++#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC)) + /* arm64_neon.h is MSVC specific */ + # include + #else +diff --git a/cmake/detect-intrinsics.cmake b/cmake/detect-intrinsics.cmake +index 31a049d..18d8df3 100644 +--- a/cmake/detect-intrinsics.cmake ++++ b/cmake/detect-intrinsics.cmake +@@ -42,7 +42,7 @@ macro(check_armv8_compiler_flag) + ) + # Check whether compiler supports ARMv8 intrinsics + check_c_source_compiles( +- "#if defined(_MSC_VER) ++ "#if defined(_MSC_VER) && !defined(__clang__) + #include + #else + #include +@@ -83,7 +83,7 @@ macro(check_armv6_compiler_flag) + ) + # Check whether compiler supports ARMv6 intrinsics + check_c_source_compiles( +- "#if defined(_MSC_VER) ++ "#if defined(_MSC_VER) && !defined(__clang__) + #include + #else + #include +@@ -222,7 +222,7 @@ macro(check_neon_compiler_flag) + # Check whether compiler supports NEON flag + set(CMAKE_REQUIRED_FLAGS "${NEONFLAG} ${NATIVEFLAG} ${ZNOLTOFLAG}") + check_c_source_compiles( +- "#if defined(_M_ARM64) || defined(_M_ARM64EC) ++ "#if (defined(_M_ARM64) || defined(_M_ARM64EC)) && !defined(__clang__) + # include + #else + # include +@@ -285,7 +285,7 @@ macro(check_neon_ld4_intrinsics) + # Check whether compiler supports loading 4 neon vecs into a register range + set(CMAKE_REQUIRED_FLAGS "${NEONFLAG} ${NATIVEFLAG} ${ZNOLTOFLAG}") + check_c_source_compiles( +- "#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC)) ++ "#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC)) + # include + #else + # include diff --git a/ports/zlib-ng/portfile.cmake b/ports/zlib-ng/portfile.cmake new file mode 100644 index 0000000..79757c4 --- /dev/null +++ b/ports/zlib-ng/portfile.cmake @@ -0,0 +1,67 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO zlib-ng/zlib-ng + REF "${VERSION}" + SHA512 e2057c764f1d5aaee738edee7e977182c5b097e3c95489dcd8de813f237d92a05daaa86d68d44b331d9fec5d1802586a8f6cfb658ba849874aaa14e72a8107f5 + HEAD_REF develop + PATCHES 0001-fix-clang-cl-neon.patch +) + +# Set ZLIB_COMPAT in the triplet file to turn on +if(NOT DEFINED ZLIB_COMPAT) + set(ZLIB_COMPAT OFF) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + "-DZLIB_FULL_VERSION=${ZLIB_FULL_VERSION}" + -DZLIB_ENABLE_TESTS=OFF + -DWITH_NEW_STRATEGIES=ON + -DZLIB_COMPAT=${ZLIB_COMPAT} + OPTIONS_RELEASE + -DWITH_OPTIM=ON +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +# Condition in `WIN32`, from https://github.com/zlib-ng/zlib-ng/blob/2.1.5/CMakeLists.txt#L1081-L1100 +# (dynamic) for `zlib` or (static `MSVC) for `zlibstatic` or default `z` +# i.e. (windows) and not (static mingw) https://learn.microsoft.com/en-us/vcpkg/maintainers/variables#vcpkg_target_is_system +if(VCPKG_TARGET_IS_WINDOWS AND (NOT (VCPKG_LIBRARY_LINKAGE STREQUAL static AND VCPKG_TARGET_IS_MINGW))) + set(_port_suffix) + if(ZLIB_COMPAT) + set(_port_suffix "") + else() + set(_port_suffix "-ng") + endif() + + set(_port_output_name) + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(_port_output_name "zlib${_port_suffix}") + else() + set(_port_output_name "zlibstatic${_port_suffix}") + endif() + + # CMAKE_DEBUG_POSTFIX from https://github.com/zlib-ng/zlib-ng/blob/2.1.5/CMakeLists.txt#L494 + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/zlib${_port_suffix}.pc" " -lz${_port_suffix}" " -l${_port_output_name}") + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/zlib${_port_suffix}.pc" " -lz${_port_suffix}" " -l${_port_output_name}d") + endif() +endif() + +vcpkg_fixup_pkgconfig() + +if(ZLIB_COMPAT) + set(_cmake_dir "ZLIB") +else() + set(_cmake_dir "zlib-ng") +endif() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${_cmake_dir}) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/include" +) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/ports/zlib-ng/vcpkg.json b/ports/zlib-ng/vcpkg.json new file mode 100644 index 0000000..26dfe3b --- /dev/null +++ b/ports/zlib-ng/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "zlib-ng", + "version": "2.3.3", + "description": "zlib replacement with optimizations for 'next generation' systems", + "homepage": "https://github.com/zlib-ng/zlib-ng", + "license": "Zlib", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/triplets/arm64-windows-webkit.cmake b/triplets/arm64-windows-webkit.cmake new file mode 100644 index 0000000..749671c --- /dev/null +++ b/triplets/arm64-windows-webkit.cmake @@ -0,0 +1,15 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +# The following libraries should always be static +if (PORT STREQUAL "highway") + set(VCPKG_LIBRARY_LINKAGE static) +elseif (PORT STREQUAL "pixman") + set(VCPKG_LIBRARY_LINKAGE static) +endif () + +# Turn on zlib compatibility +if (PORT STREQUAL "zlib-ng") + set(ZLIB_COMPAT ON) +endif () diff --git a/versions/baseline.json b/versions/baseline.json index 8341c87..f3674ca 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -10,6 +10,10 @@ }, "icu": { "baseline": "77.1.0", + "port-version": 3 + }, + "libwebp": { + "baseline": "1.6.0", "port-version": 2 }, "openssl": { @@ -23,6 +27,10 @@ "zlib": { "baseline": "zlib-ng", "port-version": 0 + }, + "zlib-ng": { + "baseline": "2.3.3", + "port-version": 0 } } } diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 4baedbd..c59db68 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "35de6e422680cb8f07eef2c73ab06ee0803e8ccb", + "version": "77.1.0", + "port-version": 3 + }, { "git-tree": "7bafd08eb7d79f91435e30201e0a50b12bf0f996", "version": "77.1.0", diff --git a/versions/l-/libwebp.json b/versions/l-/libwebp.json new file mode 100644 index 0000000..3e3633f --- /dev/null +++ b/versions/l-/libwebp.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "f516bd8b13ddb8585223e36823e22a2ead97ded5", + "version": "1.6.0", + "port-version": 2 + } + ] +} diff --git a/versions/z-/zlib-ng.json b/versions/z-/zlib-ng.json new file mode 100644 index 0000000..6d1d2bf --- /dev/null +++ b/versions/z-/zlib-ng.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "c2228a8220600eb7db7e252a7984644546681785", + "version": "2.3.3", + "port-version": 0 + } + ] +}