Renames for Yoga and libjpeg Addresses the Unity issues raised by Adam here: https://2dimensions.slack.com/archives/CLLCU09T6/p1718727712078119 libjpeg has a flag `NEED_SHORT_EXTERNAL_NAMES`, which renames functions to shorter names, however, I didn't use this approach because its possible we could get naming collisions if someone brings another 3rd party lib which also has this flag enabled. Diffs= a4439ee42 Renames for Yoga and libjpeg (#7446) Co-authored-by: Philip Chung <philterdesign@gmail.com>
diff --git a/.rive_head b/.rive_head index aaeeaf3..2027035 100644 --- a/.rive_head +++ b/.rive_head
@@ -1 +1 @@ -97578005cb9eb1561b13e80755d3cfe632c0752f +a4439ee42b2a159663212b9bff3f0b32c46e06c3
diff --git a/decoders/premake5_v2.lua b/decoders/premake5_v2.lua index bf0a115..44ba4c9 100644 --- a/decoders/premake5_v2.lua +++ b/decoders/premake5_v2.lua
@@ -14,4 +14,12 @@ includedirs({ 'include', '../include', libpng, libjpeg }) files({ 'src/**.cpp' }) + + filter({ 'options:not no-libjpeg-renames' }) + do + includedirs({ + rive .. '/dependencies', + }) + forceincludes({ 'rive_libjpeg_renames.h' }) + end end
diff --git a/dependencies/gen_libjpeg_renames/gen_header.dart b/dependencies/gen_libjpeg_renames/gen_header.dart new file mode 100644 index 0000000..59cc213 --- /dev/null +++ b/dependencies/gen_libjpeg_renames/gen_header.dart
@@ -0,0 +1,74 @@ +import 'dart:collection'; +import 'dart:io'; + +final skip = HashSet.from( + [], +); + +final extras = HashSet.from( + [ + 'read_quant_tables', + 'read_scan_script', + 'set_quality_ratings', + 'set_quant_slots', + 'set_sample_factors', + 'read_color_map', + 'enable_signal_catcher', + 'start_progress_monitor', + 'end_progress_monitor', + 'read_stdin', + 'write_stdout', + 'jdiv_round_up', + 'jround_up', + 'jzero_far', + 'jcopy_sample_rows', + 'jcopy_block_row', + 'jtransform_parse_crop_spec', + 'jtransform_request_workspace', + 'jtransform_adjust_parameters', + 'jtransform_execute_transform', + 'jtransform_perfect_transform', + 'jcopy_markers_setup', + 'jcopy_markers_execute', + ], +); + +void main() { + final uniqueNames = HashSet<String>(); + var header = StringBuffer(); + header.writeln('// clang-format off'); + header.writeln('// jpeg_*'); + var contents = File('libjpeg_names.txt').readAsStringSync(); + RegExp exp = RegExp(r'\s_(jpeg_([a-zA-Z0-9_]*))', multiLine: true); + Iterable<RegExpMatch> matches = exp.allMatches(contents); + for (final m in matches) { + var symbolName = m[1]; + if (symbolName == null || + skip.contains(symbolName) || + uniqueNames.contains(symbolName)) { + continue; + } + uniqueNames.add(symbolName); + header.writeln('#define $symbolName rive_$symbolName'); + } + header.writeln('// jinit_*'); + { + RegExp exp = RegExp(r'\s_(jinit_([a-zA-Z0-9_]*))', multiLine: true); + Iterable<RegExpMatch> matches = exp.allMatches(contents); + for (final m in matches) { + var symbolName = m[1]; + if (symbolName == null || + skip.contains(symbolName) || + uniqueNames.contains(symbolName)) { + continue; + } + uniqueNames.add(symbolName); + header.writeln('#define $symbolName rive_$symbolName'); + } + } + header.writeln('// _j extras'); + for (final symbolName in extras) { + header.writeln('#define $symbolName rive_$symbolName'); + } + File('../rive_libjpeg_renames.h').writeAsStringSync(header.toString()); +}
diff --git a/dependencies/gen_libjpeg_renames/gen_renames.sh b/dependencies/gen_libjpeg_renames/gen_renames.sh new file mode 100755 index 0000000..6f45c0b --- /dev/null +++ b/dependencies/gen_libjpeg_renames/gen_renames.sh
@@ -0,0 +1,58 @@ +#!/bin/bash +set -e + +# This script should be called on a Mac! + +# NOTE: Before building, jconfig.txt needs to be renamed to jconfig.h + +if [[ ! -f "dependencies/bin/premake5" ]]; then + mkdir -p dependencies/bin + pushd dependencies + # v5.0.0-beta2 doesn't support apple silicon properly, update the branch + # once a stable one is avaialble that supports it + git clone --depth 1 --branch master https://github.com/premake/premake-core.git + pushd premake-core + if [[ $LOCAL_ARCH == "arm64" ]]; then + PREMAKE_MAKE_ARCH=ARM + else + PREMAKE_MAKE_ARCH=x86 + fi + make -f Bootstrap.mak osx PLATFORM=$PREMAKE_MAKE_ARCH + cp bin/release/* ../bin + popd + popd +fi + +export PREMAKE=$PWD/dependencies/bin/premake5 + +for var in "$@"; do + if [[ $var = "clean" ]]; then + echo 'Cleaning...' + rm -fR out + fi +done + +mkdir -p out +mkdir -p out_with_renames + +pushd ../../../ +PACKAGES=$PWD +popd +export PREMAKE_PATH="dependencies/export-compile-commands":"$PACKAGES/runtime_unity/native_plugin/platform":"$PACKAGES/runtime/build":"$PREMAKE_PATH" + +$PREMAKE gmake2 --file=../premake5_libjpeg_v2.lua --out=out --no-libjpeg-renames +pushd out +make -j$(($(sysctl -n hw.physicalcpu) + 1)) +popd + +nm out/liblibjpeg.a --demangle &>libjpeg_names.txt + +dart gen_header.dart + +# make with renames just to examine the exported symbols... +$PREMAKE gmake2 --file=../premake5_libjpeg_v2.lua --out=out_with_renames +pushd out_with_renames +make -j$(($(sysctl -n hw.physicalcpu) + 1)) +popd + +nm out_with_renames/liblibjpeg.a --demangle &>libjpeg_renames.txt
diff --git a/dependencies/gen_yoga_renames/gen_header.dart b/dependencies/gen_yoga_renames/gen_header.dart new file mode 100644 index 0000000..d5f724d --- /dev/null +++ b/dependencies/gen_yoga_renames/gen_header.dart
@@ -0,0 +1,46 @@ +import 'dart:collection'; +import 'dart:io'; + +final skip = HashSet.from( + [], +); + +final extras = HashSet.from( + [], +); + +void main() { + final uniqueNames = HashSet<String>(); + var header = StringBuffer(); + header.writeln('// clang-format off'); + header.writeln('// YG*'); + var contents = File('yoga_names.txt').readAsStringSync(); + RegExp exp = RegExp(r'\s(YG([a-zA-Z0-9_]*))', multiLine: true); + Iterable<RegExpMatch> matches = exp.allMatches(contents); + for (final m in matches) { + var symbolName = m[1]; + if (symbolName == null || + skip.contains(symbolName) || + uniqueNames.contains(symbolName)) { + continue; + } + uniqueNames.add(symbolName); + header.writeln('#define $symbolName rive_$symbolName'); + } + header.writeln('// _YG*'); + { + RegExp exp = RegExp(r'\s_(YG([a-zA-Z0-9_]*))', multiLine: true); + Iterable<RegExpMatch> matches = exp.allMatches(contents); + for (final m in matches) { + var symbolName = m[1]; + if (symbolName == null || + skip.contains(symbolName) || + uniqueNames.contains(symbolName)) { + continue; + } + uniqueNames.add(symbolName); + header.writeln('#define $symbolName rive_$symbolName'); + } + } + File('../rive_yoga_renames.h').writeAsStringSync(header.toString()); +}
diff --git a/dependencies/gen_yoga_renames/gen_renames.sh b/dependencies/gen_yoga_renames/gen_renames.sh new file mode 100755 index 0000000..eadf7d7 --- /dev/null +++ b/dependencies/gen_yoga_renames/gen_renames.sh
@@ -0,0 +1,56 @@ +#!/bin/bash +set -e + +# This script should be called on a Mac! + +if [[ ! -f "dependencies/bin/premake5" ]]; then + mkdir -p dependencies/bin + pushd dependencies + # v5.0.0-beta2 doesn't support apple silicon properly, update the branch + # once a stable one is avaialble that supports it + git clone --depth 1 --branch master https://github.com/premake/premake-core.git + pushd premake-core + if [[ $LOCAL_ARCH == "arm64" ]]; then + PREMAKE_MAKE_ARCH=ARM + else + PREMAKE_MAKE_ARCH=x86 + fi + make -f Bootstrap.mak osx PLATFORM=$PREMAKE_MAKE_ARCH + cp bin/release/* ../bin + popd + popd +fi + +export PREMAKE=$PWD/dependencies/bin/premake5 + +for var in "$@"; do + if [[ $var = "clean" ]]; then + echo 'Cleaning...' + rm -fR out + fi +done + +mkdir -p out +mkdir -p out_with_renames + +pushd ../../../ +PACKAGES=$PWD +popd +export PREMAKE_PATH="dependencies/export-compile-commands":"$PACKAGES/runtime_unity/native_plugin/platform":"$PACKAGES/runtime/build":"$PREMAKE_PATH" + +$PREMAKE gmake2 --file=../premake5_yoga_v2.lua --out=out --no-yoga-renames +pushd out +make -j$(($(sysctl -n hw.physicalcpu) + 1)) +popd + +nm out/librive_yoga.a --demangle &>yoga_names.txt + +dart gen_header.dart + +# make with renames just to examine the exported symbols... +$PREMAKE gmake2 --file=../premake5_yoga_v2.lua --out=out_with_renames +pushd out_with_renames +make -j$(($(sysctl -n hw.physicalcpu) + 1)) +popd + +nm out_with_renames/librive_yoga.a --demangle &>yoga_renames.txt
diff --git a/dependencies/premake5_libjpeg_v2.lua b/dependencies/premake5_libjpeg_v2.lua index 4b5280f..6ef35f9 100644 --- a/dependencies/premake5_libjpeg_v2.lua +++ b/dependencies/premake5_libjpeg_v2.lua
@@ -7,6 +7,11 @@ local dependency = require('dependency') libjpeg = dependency.github('rive-app/libjpeg', 'v9f') +newoption({ + trigger = 'no-libjpeg-renames', + description = 'don\'t rename libjpeg symbols', +}) + project('libjpeg') do kind('StaticLib') @@ -62,4 +67,10 @@ libjpeg .. '/jmemmgr.c', libjpeg .. '/jmemansi.c', }) + + filter({ 'options:not no-libjpeg-renames' }) + do + includedirs({ './' }) + forceincludes({ 'rive_libjpeg_renames.h' }) + end end
diff --git a/dependencies/premake5_yoga_v2.lua b/dependencies/premake5_yoga_v2.lua index 4583132..30d8284 100644 --- a/dependencies/premake5_yoga_v2.lua +++ b/dependencies/premake5_yoga_v2.lua
@@ -3,6 +3,11 @@ local dependency = require('dependency') yoga = dependency.github('rive-app/yoga', 'rive_changes_v2_0_1') +newoption({ + trigger = 'no-yoga-renames', + description = 'don\'t rename yoga symbols', +}) + project('rive_yoga') do kind('StaticLib') @@ -25,4 +30,10 @@ yoga .. '/yoga/event/event.cpp', yoga .. '/yoga/log.cpp', }) + + filter({ 'options:not no-yoga-renames' }) + do + includedirs({ './' }) + forceincludes({ 'rive_yoga_renames.h' }) + end end
diff --git a/dependencies/rive_libjpeg_renames.h b/dependencies/rive_libjpeg_renames.h new file mode 100644 index 0000000..9e1ad74 --- /dev/null +++ b/dependencies/rive_libjpeg_renames.h
@@ -0,0 +1,204 @@ +// clang-format off +// jpeg_* +#define jpeg_aritab rive_jpeg_aritab +#define jpeg_CreateCompress rive_jpeg_CreateCompress +#define jpeg_abort rive_jpeg_abort +#define jpeg_abort_compress rive_jpeg_abort_compress +#define jpeg_destroy rive_jpeg_destroy +#define jpeg_destroy_compress rive_jpeg_destroy_compress +#define jpeg_finish_compress rive_jpeg_finish_compress +#define jpeg_natural_order rive_jpeg_natural_order +#define jpeg_suppress_tables rive_jpeg_suppress_tables +#define jpeg_write_m_byte rive_jpeg_write_m_byte +#define jpeg_write_m_header rive_jpeg_write_m_header +#define jpeg_write_marker rive_jpeg_write_marker +#define jpeg_write_tables rive_jpeg_write_tables +#define jpeg_start_compress rive_jpeg_start_compress +#define jpeg_write_raw_data rive_jpeg_write_raw_data +#define jpeg_write_scanlines rive_jpeg_write_scanlines +#define jpeg_fdct_10x10 rive_jpeg_fdct_10x10 +#define jpeg_fdct_10x5 rive_jpeg_fdct_10x5 +#define jpeg_fdct_11x11 rive_jpeg_fdct_11x11 +#define jpeg_fdct_12x12 rive_jpeg_fdct_12x12 +#define jpeg_fdct_12x6 rive_jpeg_fdct_12x6 +#define jpeg_fdct_13x13 rive_jpeg_fdct_13x13 +#define jpeg_fdct_14x14 rive_jpeg_fdct_14x14 +#define jpeg_fdct_14x7 rive_jpeg_fdct_14x7 +#define jpeg_fdct_15x15 rive_jpeg_fdct_15x15 +#define jpeg_fdct_16x16 rive_jpeg_fdct_16x16 +#define jpeg_fdct_16x8 rive_jpeg_fdct_16x8 +#define jpeg_fdct_1x1 rive_jpeg_fdct_1x1 +#define jpeg_fdct_1x2 rive_jpeg_fdct_1x2 +#define jpeg_fdct_2x1 rive_jpeg_fdct_2x1 +#define jpeg_fdct_2x2 rive_jpeg_fdct_2x2 +#define jpeg_fdct_2x4 rive_jpeg_fdct_2x4 +#define jpeg_fdct_3x3 rive_jpeg_fdct_3x3 +#define jpeg_fdct_3x6 rive_jpeg_fdct_3x6 +#define jpeg_fdct_4x2 rive_jpeg_fdct_4x2 +#define jpeg_fdct_4x4 rive_jpeg_fdct_4x4 +#define jpeg_fdct_4x8 rive_jpeg_fdct_4x8 +#define jpeg_fdct_5x10 rive_jpeg_fdct_5x10 +#define jpeg_fdct_5x5 rive_jpeg_fdct_5x5 +#define jpeg_fdct_6x12 rive_jpeg_fdct_6x12 +#define jpeg_fdct_6x3 rive_jpeg_fdct_6x3 +#define jpeg_fdct_6x6 rive_jpeg_fdct_6x6 +#define jpeg_fdct_7x14 rive_jpeg_fdct_7x14 +#define jpeg_fdct_7x7 rive_jpeg_fdct_7x7 +#define jpeg_fdct_8x16 rive_jpeg_fdct_8x16 +#define jpeg_fdct_8x4 rive_jpeg_fdct_8x4 +#define jpeg_fdct_9x9 rive_jpeg_fdct_9x9 +#define jpeg_fdct_float rive_jpeg_fdct_float +#define jpeg_fdct_ifast rive_jpeg_fdct_ifast +#define jpeg_fdct_islow rive_jpeg_fdct_islow +#define jpeg_alloc_huff_table rive_jpeg_alloc_huff_table +#define jpeg_gen_optimal_table rive_jpeg_gen_optimal_table +#define jpeg_make_c_derived_tbl rive_jpeg_make_c_derived_tbl +#define jpeg_std_huff_table rive_jpeg_std_huff_table +#define jpeg_calc_jpeg_dimensions rive_jpeg_calc_jpeg_dimensions +#define jpeg_natural_order2 rive_jpeg_natural_order2 +#define jpeg_natural_order3 rive_jpeg_natural_order3 +#define jpeg_natural_order4 rive_jpeg_natural_order4 +#define jpeg_natural_order5 rive_jpeg_natural_order5 +#define jpeg_natural_order6 rive_jpeg_natural_order6 +#define jpeg_natural_order7 rive_jpeg_natural_order7 +#define jpeg_alloc_quant_table rive_jpeg_alloc_quant_table +#define jpeg_add_quant_table rive_jpeg_add_quant_table +#define jpeg_default_colorspace rive_jpeg_default_colorspace +#define jpeg_default_qtables rive_jpeg_default_qtables +#define jpeg_quality_scaling rive_jpeg_quality_scaling +#define jpeg_set_colorspace rive_jpeg_set_colorspace +#define jpeg_set_defaults rive_jpeg_set_defaults +#define jpeg_set_linear_quality rive_jpeg_set_linear_quality +#define jpeg_set_quality rive_jpeg_set_quality +#define jpeg_simple_progression rive_jpeg_simple_progression +#define jpeg_copy_critical_parameters rive_jpeg_copy_critical_parameters +#define jpeg_write_coefficients rive_jpeg_write_coefficients +#define jpeg_CreateDecompress rive_jpeg_CreateDecompress +#define jpeg_abort_decompress rive_jpeg_abort_decompress +#define jpeg_consume_input rive_jpeg_consume_input +#define jpeg_destroy_decompress rive_jpeg_destroy_decompress +#define jpeg_finish_decompress rive_jpeg_finish_decompress +#define jpeg_has_multiple_scans rive_jpeg_has_multiple_scans +#define jpeg_input_complete rive_jpeg_input_complete +#define jpeg_read_header rive_jpeg_read_header +#define jpeg_finish_output rive_jpeg_finish_output +#define jpeg_read_raw_data rive_jpeg_read_raw_data +#define jpeg_read_scanlines rive_jpeg_read_scanlines +#define jpeg_start_decompress rive_jpeg_start_decompress +#define jpeg_start_output rive_jpeg_start_output +#define jpeg_mem_dest rive_jpeg_mem_dest +#define jpeg_stdio_dest rive_jpeg_stdio_dest +#define jpeg_mem_src rive_jpeg_mem_src +#define jpeg_resync_to_restart rive_jpeg_resync_to_restart +#define jpeg_stdio_src rive_jpeg_stdio_src +#define jpeg_idct_10x10 rive_jpeg_idct_10x10 +#define jpeg_idct_10x5 rive_jpeg_idct_10x5 +#define jpeg_idct_11x11 rive_jpeg_idct_11x11 +#define jpeg_idct_12x12 rive_jpeg_idct_12x12 +#define jpeg_idct_12x6 rive_jpeg_idct_12x6 +#define jpeg_idct_13x13 rive_jpeg_idct_13x13 +#define jpeg_idct_14x14 rive_jpeg_idct_14x14 +#define jpeg_idct_14x7 rive_jpeg_idct_14x7 +#define jpeg_idct_15x15 rive_jpeg_idct_15x15 +#define jpeg_idct_16x16 rive_jpeg_idct_16x16 +#define jpeg_idct_16x8 rive_jpeg_idct_16x8 +#define jpeg_idct_1x1 rive_jpeg_idct_1x1 +#define jpeg_idct_1x2 rive_jpeg_idct_1x2 +#define jpeg_idct_2x1 rive_jpeg_idct_2x1 +#define jpeg_idct_2x2 rive_jpeg_idct_2x2 +#define jpeg_idct_2x4 rive_jpeg_idct_2x4 +#define jpeg_idct_3x3 rive_jpeg_idct_3x3 +#define jpeg_idct_3x6 rive_jpeg_idct_3x6 +#define jpeg_idct_4x2 rive_jpeg_idct_4x2 +#define jpeg_idct_4x4 rive_jpeg_idct_4x4 +#define jpeg_idct_4x8 rive_jpeg_idct_4x8 +#define jpeg_idct_5x10 rive_jpeg_idct_5x10 +#define jpeg_idct_5x5 rive_jpeg_idct_5x5 +#define jpeg_idct_6x12 rive_jpeg_idct_6x12 +#define jpeg_idct_6x3 rive_jpeg_idct_6x3 +#define jpeg_idct_6x6 rive_jpeg_idct_6x6 +#define jpeg_idct_7x14 rive_jpeg_idct_7x14 +#define jpeg_idct_7x7 rive_jpeg_idct_7x7 +#define jpeg_idct_8x16 rive_jpeg_idct_8x16 +#define jpeg_idct_8x4 rive_jpeg_idct_8x4 +#define jpeg_idct_9x9 rive_jpeg_idct_9x9 +#define jpeg_idct_float rive_jpeg_idct_float +#define jpeg_idct_ifast rive_jpeg_idct_ifast +#define jpeg_idct_islow rive_jpeg_idct_islow +#define jpeg_fill_bit_buffer rive_jpeg_fill_bit_buffer +#define jpeg_huff_decode rive_jpeg_huff_decode +#define jpeg_make_d_derived_tbl rive_jpeg_make_d_derived_tbl +#define jpeg_zigzag_order rive_jpeg_zigzag_order +#define jpeg_zigzag_order2 rive_jpeg_zigzag_order2 +#define jpeg_zigzag_order3 rive_jpeg_zigzag_order3 +#define jpeg_zigzag_order4 rive_jpeg_zigzag_order4 +#define jpeg_zigzag_order5 rive_jpeg_zigzag_order5 +#define jpeg_zigzag_order6 rive_jpeg_zigzag_order6 +#define jpeg_zigzag_order7 rive_jpeg_zigzag_order7 +#define jpeg_core_output_dimensions rive_jpeg_core_output_dimensions +#define jpeg_save_markers rive_jpeg_save_markers +#define jpeg_set_marker_processor rive_jpeg_set_marker_processor +#define jpeg_calc_output_dimensions rive_jpeg_calc_output_dimensions +#define jpeg_new_colormap rive_jpeg_new_colormap +#define jpeg_read_coefficients rive_jpeg_read_coefficients +#define jpeg_std_error rive_jpeg_std_error +#define jpeg_std_message_table rive_jpeg_std_message_table +#define jpeg_free_large rive_jpeg_free_large +#define jpeg_free_small rive_jpeg_free_small +#define jpeg_get_large rive_jpeg_get_large +#define jpeg_get_small rive_jpeg_get_small +#define jpeg_mem_available rive_jpeg_mem_available +#define jpeg_mem_init rive_jpeg_mem_init +#define jpeg_mem_term rive_jpeg_mem_term +#define jpeg_open_backing_store rive_jpeg_open_backing_store +// jinit_* +#define jinit_marker_writer rive_jinit_marker_writer +#define jinit_memory_mgr rive_jinit_memory_mgr +#define jinit_compress_master rive_jinit_compress_master +#define jinit_arith_encoder rive_jinit_arith_encoder +#define jinit_c_coef_controller rive_jinit_c_coef_controller +#define jinit_color_converter rive_jinit_color_converter +#define jinit_forward_dct rive_jinit_forward_dct +#define jinit_huff_encoder rive_jinit_huff_encoder +#define jinit_c_main_controller rive_jinit_c_main_controller +#define jinit_c_master_control rive_jinit_c_master_control +#define jinit_c_prep_controller rive_jinit_c_prep_controller +#define jinit_downsampler rive_jinit_downsampler +#define jinit_input_controller rive_jinit_input_controller +#define jinit_marker_reader rive_jinit_marker_reader +#define jinit_master_decompress rive_jinit_master_decompress +#define jinit_arith_decoder rive_jinit_arith_decoder +#define jinit_d_coef_controller rive_jinit_d_coef_controller +#define jinit_color_deconverter rive_jinit_color_deconverter +#define jinit_inverse_dct rive_jinit_inverse_dct +#define jinit_huff_decoder rive_jinit_huff_decoder +#define jinit_d_main_controller rive_jinit_d_main_controller +#define jinit_1pass_quantizer rive_jinit_1pass_quantizer +#define jinit_2pass_quantizer rive_jinit_2pass_quantizer +#define jinit_d_post_controller rive_jinit_d_post_controller +#define jinit_merged_upsampler rive_jinit_merged_upsampler +#define jinit_upsampler rive_jinit_upsampler +// _j extras +#define jtransform_execute_transform rive_jtransform_execute_transform +#define read_scan_script rive_read_scan_script +#define jcopy_markers_execute rive_jcopy_markers_execute +#define jcopy_markers_setup rive_jcopy_markers_setup +#define enable_signal_catcher rive_enable_signal_catcher +#define set_quant_slots rive_set_quant_slots +#define read_stdin rive_read_stdin +#define set_quality_ratings rive_set_quality_ratings +#define write_stdout rive_write_stdout +#define set_sample_factors rive_set_sample_factors +#define jtransform_perfect_transform rive_jtransform_perfect_transform +#define jcopy_sample_rows rive_jcopy_sample_rows +#define jdiv_round_up rive_jdiv_round_up +#define jtransform_request_workspace rive_jtransform_request_workspace +#define jcopy_block_row rive_jcopy_block_row +#define end_progress_monitor rive_end_progress_monitor +#define read_quant_tables rive_read_quant_tables +#define jzero_far rive_jzero_far +#define read_color_map rive_read_color_map +#define jtransform_adjust_parameters rive_jtransform_adjust_parameters +#define jround_up rive_jround_up +#define start_progress_monitor rive_start_progress_monitor +#define jtransform_parse_crop_spec rive_jtransform_parse_crop_spec
diff --git a/dependencies/rive_yoga_renames.h b/dependencies/rive_yoga_renames.h new file mode 100644 index 0000000..f10efae --- /dev/null +++ b/dependencies/rive_yoga_renames.h
@@ -0,0 +1,241 @@ +// clang-format off +// YG* +#define YGFloatMax rive_YGFloatMax +#define YGFloatMin rive_YGFloatMin +#define YGValueEqual rive_YGValueEqual +#define YGValue rive_YGValue +#define YGDoubleEqual rive_YGDoubleEqual +#define YGFloatsEqual rive_YGFloatsEqual +#define YGFloatSanitize rive_YGFloatSanitize +#define YGFloatOptionalMax rive_YGFloatOptionalMax +#define YGFloatOptional rive_YGFloatOptional +#define YGFlexDirectionCross rive_YGFlexDirectionCross +#define YGDirection rive_YGDirection +#define YGResolveFlexDirection rive_YGResolveFlexDirection +#define YGFlexDirectionIsColumn rive_YGFlexDirectionIsColumn +#define YGConfig rive_YGConfig +#define YGNode rive_YGNode +#define YGLogLevel rive_YGLogLevel +#define YGErrata rive_YGErrata +#define YGEnums rive_YGEnums +#define YGLayout rive_YGLayout +#define YGFloatArrayEqual rive_YGFloatArrayEqual +#define YGCachedMeasurement rive_YGCachedMeasurement +#define YGResolveValue rive_YGResolveValue +#define YGFlexDirectionIsRow rive_YGFlexDirectionIsRow +#define YGResolveValueMargin rive_YGResolveValueMargin +#define YGMeasureMode rive_YGMeasureMode +#define YGEdge rive_YGEdge +#define YGStyle rive_YGStyle +#define YGPositionType rive_YGPositionType +#define YGFlexDirection rive_YGFlexDirection +#define YGNodePrint rive_YGNodePrint +#define YGPrintOptions rive_YGPrintOptions +#define YGOverflow rive_YGOverflow +#define YGWrap rive_YGWrap +#define YGAlign rive_YGAlign +#define YGDisplay rive_YGDisplay +#define YGJustify rive_YGJustify +#define YGLayoutNodeInternal rive_YGLayoutNodeInternal +#define YGConfigGetDefault rive_YGConfigGetDefault +#define YGBaseline rive_YGBaseline +#define YGDefaultLog rive_YGDefaultLog +#define YGNodeAlignItem rive_YGNodeAlignItem +#define YGNodeBoundAxis rive_YGNodeBoundAxis +#define YGNodelayoutImpl rive_YGNodelayoutImpl +#define YGJustifyMainAxis rive_YGJustifyMainAxis +#define YGCollectFlexItemsRowValues rive_YGCollectFlexItemsRowValues +#define YGMeasureModeName rive_YGMeasureModeName +#define YGIsBaselineLayout rive_YGIsBaselineLayout +#define YGRoundToPixelGrid rive_YGRoundToPixelGrid +#define YGDoubleIsUndefined rive_YGDoubleIsUndefined +#define YGNodeDimWithMargin rive_YGNodeDimWithMargin +#define YGNodePrintInternal rive_YGNodePrintInternal +#define YGNodeIsStyleDimDefined rive_YGNodeIsStyleDimDefined +#define YGResolveFlexibleLength rive_YGResolveFlexibleLength +#define YGNodeIsLayoutDimDefined rive_YGNodeIsLayoutDimDefined +#define YGConstrainMaxSizeForMode rive_YGConstrainMaxSizeForMode +#define YGNodeAbsoluteLayoutChild rive_YGNodeAbsoluteLayoutChild +#define YGZeroOutLayoutRecursively rive_YGZeroOutLayoutRecursively +#define YGNodePaddingAndBorderForAxis rive_YGNodePaddingAndBorderForAxis +#define YGDistributeFreeSpaceFirstPass rive_YGDistributeFreeSpaceFirstPass +#define YGNodeBoundAxisWithinMinAndMax rive_YGNodeBoundAxisWithinMinAndMax +#define YGNodeComputeFlexBasisForChild rive_YGNodeComputeFlexBasisForChild +#define YGNodeSetChildTrailingPosition rive_YGNodeSetChildTrailingPosition +#define YGDistributeFreeSpaceSecondPass rive_YGDistributeFreeSpaceSecondPass +#define YGNodeCalculateAvailableInnerDim rive_YGNodeCalculateAvailableInnerDim +#define YGDimension rive_YGDimension +#define YGNodeComputeFlexBasisForChildren rive_YGNodeComputeFlexBasisForChildren +#define YGCalculateCollectFlexItemsRowValues rive_YGCalculateCollectFlexItemsRowValues +#define YGNodeFixedSizeSetMeasuredDimensions rive_YGNodeFixedSizeSetMeasuredDimensions +#define YGNodeEmptyContainerSetMeasuredDimensions rive_YGNodeEmptyContainerSetMeasuredDimensions +#define YGNodeWithMeasureFuncSetMeasuredDimensions rive_YGNodeWithMeasureFuncSetMeasuredDimensions +#define YGMeasureModeOldSizeIsUnspecifiedAndStillFits rive_YGMeasureModeOldSizeIsUnspecifiedAndStillFits +#define YGMeasureModeSizeIsExactAndMatchesOldMeasuredSize rive_YGMeasureModeSizeIsExactAndMatchesOldMeasuredSize +#define YGMeasureModeNewMeasureSizeIsStricterAndStillValid rive_YGMeasureModeNewMeasureSizeIsStricterAndStillValid +#define YGSpacer rive_YGSpacer +#define YGGutter rive_YGGutter +// _YG* +#define YGNodeClone rive_YGNodeClone +#define YGAlignToString rive_YGAlignToString +#define YGDimensionToString rive_YGDimensionToString +#define YGDirectionToString rive_YGDirectionToString +#define YGDisplayToString rive_YGDisplayToString +#define YGEdgeToString rive_YGEdgeToString +#define YGErrataToString rive_YGErrataToString +#define YGExperimentalFeatureToString rive_YGExperimentalFeatureToString +#define YGFlexDirectionToString rive_YGFlexDirectionToString +#define YGGutterToString rive_YGGutterToString +#define YGJustifyToString rive_YGJustifyToString +#define YGLogLevelToString rive_YGLogLevelToString +#define YGMeasureModeToString rive_YGMeasureModeToString +#define YGNodeTypeToString rive_YGNodeTypeToString +#define YGOverflowToString rive_YGOverflowToString +#define YGPositionTypeToString rive_YGPositionTypeToString +#define YGPrintOptionsToString rive_YGPrintOptionsToString +#define YGUnitToString rive_YGUnitToString +#define YGWrapToString rive_YGWrapToString +#define YGAssert rive_YGAssert +#define YGAssertWithConfig rive_YGAssertWithConfig +#define YGAssertWithNode rive_YGAssertWithNode +#define YGValueAuto rive_YGValueAuto +#define YGValueUndefined rive_YGValueUndefined +#define YGValueZero rive_YGValueZero +#define YGNodeGetChild rive_YGNodeGetChild +#define YGConfigCopy rive_YGConfigCopy +#define YGConfigFree rive_YGConfigFree +#define YGConfigGetContext rive_YGConfigGetContext +#define YGConfigGetErrata rive_YGConfigGetErrata +#define YGConfigGetInstanceCount rive_YGConfigGetInstanceCount +#define YGConfigGetPointScaleFactor rive_YGConfigGetPointScaleFactor +#define YGConfigGetUseLegacyStretchBehaviour rive_YGConfigGetUseLegacyStretchBehaviour +#define YGConfigGetUseWebDefaults rive_YGConfigGetUseWebDefaults +#define YGConfigIsExperimentalFeatureEnabled rive_YGConfigIsExperimentalFeatureEnabled +#define YGConfigNew rive_YGConfigNew +#define YGConfigSetCloneNodeFunc rive_YGConfigSetCloneNodeFunc +#define YGConfigSetContext rive_YGConfigSetContext +#define YGConfigSetErrata rive_YGConfigSetErrata +#define YGConfigSetExperimentalFeatureEnabled rive_YGConfigSetExperimentalFeatureEnabled +#define YGConfigSetLogger rive_YGConfigSetLogger +#define YGConfigSetPointScaleFactor rive_YGConfigSetPointScaleFactor +#define YGConfigSetPrintTreeFlag rive_YGConfigSetPrintTreeFlag +#define YGConfigSetUseLegacyStretchBehaviour rive_YGConfigSetUseLegacyStretchBehaviour +#define YGConfigSetUseWebDefaults rive_YGConfigSetUseWebDefaults +#define YGFloatIsUndefined rive_YGFloatIsUndefined +#define YGNodeCalculateLayout rive_YGNodeCalculateLayout +#define YGNodeCalculateLayoutWithContext rive_YGNodeCalculateLayoutWithContext +#define YGNodeCanUseCachedMeasurement rive_YGNodeCanUseCachedMeasurement +#define YGNodeCopyStyle rive_YGNodeCopyStyle +#define YGNodeDeallocate rive_YGNodeDeallocate +#define YGNodeFree rive_YGNodeFree +#define YGNodeFreeRecursive rive_YGNodeFreeRecursive +#define YGNodeFreeRecursiveWithCleanupFunc rive_YGNodeFreeRecursiveWithCleanupFunc +#define YGNodeGetChildCount rive_YGNodeGetChildCount +#define YGNodeGetConfig rive_YGNodeGetConfig +#define YGNodeGetContext rive_YGNodeGetContext +#define YGNodeGetDirtiedFunc rive_YGNodeGetDirtiedFunc +#define YGNodeGetHasNewLayout rive_YGNodeGetHasNewLayout +#define YGNodeGetNodeType rive_YGNodeGetNodeType +#define YGNodeGetOwner rive_YGNodeGetOwner +#define YGNodeGetParent rive_YGNodeGetParent +#define YGNodeHasBaselineFunc rive_YGNodeHasBaselineFunc +#define YGNodeHasMeasureFunc rive_YGNodeHasMeasureFunc +#define YGNodeInsertChild rive_YGNodeInsertChild +#define YGNodeIsDirty rive_YGNodeIsDirty +#define YGNodeIsReferenceBaseline rive_YGNodeIsReferenceBaseline +#define YGNodeLayoutGetBorder rive_YGNodeLayoutGetBorder +#define YGNodeLayoutGetBottom rive_YGNodeLayoutGetBottom +#define YGNodeLayoutGetDirection rive_YGNodeLayoutGetDirection +#define YGNodeLayoutGetHadOverflow rive_YGNodeLayoutGetHadOverflow +#define YGNodeLayoutGetHeight rive_YGNodeLayoutGetHeight +#define YGNodeLayoutGetLeft rive_YGNodeLayoutGetLeft +#define YGNodeLayoutGetMargin rive_YGNodeLayoutGetMargin +#define YGNodeLayoutGetPadding rive_YGNodeLayoutGetPadding +#define YGNodeLayoutGetRight rive_YGNodeLayoutGetRight +#define YGNodeLayoutGetTop rive_YGNodeLayoutGetTop +#define YGNodeLayoutGetWidth rive_YGNodeLayoutGetWidth +#define YGNodeMarkDirty rive_YGNodeMarkDirty +#define YGNodeMarkDirtyAndPropagateToDescendants rive_YGNodeMarkDirtyAndPropagateToDescendants +#define YGNodeNew rive_YGNodeNew +#define YGNodeNewWithConfig rive_YGNodeNewWithConfig +#define YGNodeRemoveAllChildren rive_YGNodeRemoveAllChildren +#define YGNodeRemoveChild rive_YGNodeRemoveChild +#define YGNodeReset rive_YGNodeReset +#define YGNodeSetBaselineFunc rive_YGNodeSetBaselineFunc +#define YGNodeSetChildren rive_YGNodeSetChildren +#define YGNodeSetConfig rive_YGNodeSetConfig +#define YGNodeSetContext rive_YGNodeSetContext +#define YGNodeSetDirtiedFunc rive_YGNodeSetDirtiedFunc +#define YGNodeSetHasNewLayout rive_YGNodeSetHasNewLayout +#define YGNodeSetIsReferenceBaseline rive_YGNodeSetIsReferenceBaseline +#define YGNodeSetMeasureFunc rive_YGNodeSetMeasureFunc +#define YGNodeSetNodeType rive_YGNodeSetNodeType +#define YGNodeSetPrintFunc rive_YGNodeSetPrintFunc +#define YGNodeStyleGetAlignContent rive_YGNodeStyleGetAlignContent +#define YGNodeStyleGetAlignItems rive_YGNodeStyleGetAlignItems +#define YGNodeStyleGetAlignSelf rive_YGNodeStyleGetAlignSelf +#define YGNodeStyleGetAspectRatio rive_YGNodeStyleGetAspectRatio +#define YGNodeStyleGetBorder rive_YGNodeStyleGetBorder +#define YGNodeStyleGetDirection rive_YGNodeStyleGetDirection +#define YGNodeStyleGetDisplay rive_YGNodeStyleGetDisplay +#define YGNodeStyleGetFlex rive_YGNodeStyleGetFlex +#define YGNodeStyleGetFlexBasis rive_YGNodeStyleGetFlexBasis +#define YGNodeStyleGetFlexDirection rive_YGNodeStyleGetFlexDirection +#define YGNodeStyleGetFlexGrow rive_YGNodeStyleGetFlexGrow +#define YGNodeStyleGetFlexShrink rive_YGNodeStyleGetFlexShrink +#define YGNodeStyleGetFlexWrap rive_YGNodeStyleGetFlexWrap +#define YGNodeStyleGetGap rive_YGNodeStyleGetGap +#define YGNodeStyleGetHeight rive_YGNodeStyleGetHeight +#define YGNodeStyleGetJustifyContent rive_YGNodeStyleGetJustifyContent +#define YGNodeStyleGetMargin rive_YGNodeStyleGetMargin +#define YGNodeStyleGetMaxHeight rive_YGNodeStyleGetMaxHeight +#define YGNodeStyleGetMaxWidth rive_YGNodeStyleGetMaxWidth +#define YGNodeStyleGetMinHeight rive_YGNodeStyleGetMinHeight +#define YGNodeStyleGetMinWidth rive_YGNodeStyleGetMinWidth +#define YGNodeStyleGetOverflow rive_YGNodeStyleGetOverflow +#define YGNodeStyleGetPadding rive_YGNodeStyleGetPadding +#define YGNodeStyleGetPosition rive_YGNodeStyleGetPosition +#define YGNodeStyleGetPositionType rive_YGNodeStyleGetPositionType +#define YGNodeStyleGetWidth rive_YGNodeStyleGetWidth +#define YGNodeStyleSetAlignContent rive_YGNodeStyleSetAlignContent +#define YGNodeStyleSetAlignItems rive_YGNodeStyleSetAlignItems +#define YGNodeStyleSetAlignSelf rive_YGNodeStyleSetAlignSelf +#define YGNodeStyleSetAspectRatio rive_YGNodeStyleSetAspectRatio +#define YGNodeStyleSetBorder rive_YGNodeStyleSetBorder +#define YGNodeStyleSetDirection rive_YGNodeStyleSetDirection +#define YGNodeStyleSetDisplay rive_YGNodeStyleSetDisplay +#define YGNodeStyleSetFlex rive_YGNodeStyleSetFlex +#define YGNodeStyleSetFlexBasis rive_YGNodeStyleSetFlexBasis +#define YGNodeStyleSetFlexBasisAuto rive_YGNodeStyleSetFlexBasisAuto +#define YGNodeStyleSetFlexBasisPercent rive_YGNodeStyleSetFlexBasisPercent +#define YGNodeStyleSetFlexDirection rive_YGNodeStyleSetFlexDirection +#define YGNodeStyleSetFlexGrow rive_YGNodeStyleSetFlexGrow +#define YGNodeStyleSetFlexShrink rive_YGNodeStyleSetFlexShrink +#define YGNodeStyleSetFlexWrap rive_YGNodeStyleSetFlexWrap +#define YGNodeStyleSetGap rive_YGNodeStyleSetGap +#define YGNodeStyleSetHeight rive_YGNodeStyleSetHeight +#define YGNodeStyleSetHeightAuto rive_YGNodeStyleSetHeightAuto +#define YGNodeStyleSetHeightPercent rive_YGNodeStyleSetHeightPercent +#define YGNodeStyleSetJustifyContent rive_YGNodeStyleSetJustifyContent +#define YGNodeStyleSetMargin rive_YGNodeStyleSetMargin +#define YGNodeStyleSetMarginAuto rive_YGNodeStyleSetMarginAuto +#define YGNodeStyleSetMarginPercent rive_YGNodeStyleSetMarginPercent +#define YGNodeStyleSetMaxHeight rive_YGNodeStyleSetMaxHeight +#define YGNodeStyleSetMaxHeightPercent rive_YGNodeStyleSetMaxHeightPercent +#define YGNodeStyleSetMaxWidth rive_YGNodeStyleSetMaxWidth +#define YGNodeStyleSetMaxWidthPercent rive_YGNodeStyleSetMaxWidthPercent +#define YGNodeStyleSetMinHeight rive_YGNodeStyleSetMinHeight +#define YGNodeStyleSetMinHeightPercent rive_YGNodeStyleSetMinHeightPercent +#define YGNodeStyleSetMinWidth rive_YGNodeStyleSetMinWidth +#define YGNodeStyleSetMinWidthPercent rive_YGNodeStyleSetMinWidthPercent +#define YGNodeStyleSetOverflow rive_YGNodeStyleSetOverflow +#define YGNodeStyleSetPadding rive_YGNodeStyleSetPadding +#define YGNodeStyleSetPaddingPercent rive_YGNodeStyleSetPaddingPercent +#define YGNodeStyleSetPosition rive_YGNodeStyleSetPosition +#define YGNodeStyleSetPositionPercent rive_YGNodeStyleSetPositionPercent +#define YGNodeStyleSetPositionType rive_YGNodeStyleSetPositionType +#define YGNodeStyleSetWidth rive_YGNodeStyleSetWidth +#define YGNodeStyleSetWidthAuto rive_YGNodeStyleSetWidthAuto +#define YGNodeStyleSetWidthPercent rive_YGNodeStyleSetWidthPercent +#define YGNodeSwapChild rive_YGNodeSwapChild +#define YGRoundValueToPixelGrid rive_YGRoundValueToPixelGrid
diff --git a/dev/test/premake5.lua b/dev/test/premake5.lua index 78c2296..318aeba 100644 --- a/dev/test/premake5.lua +++ b/dev/test/premake5.lua
@@ -54,4 +54,12 @@ }) forceincludes({ 'rive_harfbuzz_renames.h' }) end + + filter({ 'options:not no-yoga-renames' }) + do + includedirs({ + dependencies, + }) + forceincludes({ 'rive_yoga_renames.h' }) + end end
diff --git a/premake5_v2.lua b/premake5_v2.lua index 44244a2..3d6c8aa 100644 --- a/premake5_v2.lua +++ b/premake5_v2.lua
@@ -60,6 +60,14 @@ forceincludes({ 'rive_harfbuzz_renames.h' }) end + filter({ 'options:not no-yoga-renames' }) + do + includedirs({ + dependencies, + }) + forceincludes({ 'rive_yoga_renames.h' }) + end + filter({ 'system:linux' }) do defines({ 'MA_NO_RUNTIME_LINKING' })