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>
This commit is contained in:
philter
2024-06-20 19:03:33 +00:00
parent ba19285dd5
commit 40c94ab7ff
12 changed files with 726 additions and 1 deletions

View File

@@ -1 +1 @@
97578005cb9eb1561b13e80755d3cfe632c0752f
a4439ee42b2a159663212b9bff3f0b32c46e06c3

View File

@@ -14,4 +14,12 @@ do
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

View File

@@ -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());
}

View File

@@ -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

View File

@@ -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());
}

56
dependencies/gen_yoga_renames/gen_renames.sh vendored Executable file
View File

@@ -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

View File

@@ -7,6 +7,11 @@ end
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 @@ do
libjpeg .. '/jmemmgr.c',
libjpeg .. '/jmemansi.c',
})
filter({ 'options:not no-libjpeg-renames' })
do
includedirs({ './' })
forceincludes({ 'rive_libjpeg_renames.h' })
end
end

View File

@@ -3,6 +3,11 @@ dofile('rive_build_config.lua')
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 @@ do
yoga .. '/yoga/event/event.cpp',
yoga .. '/yoga/log.cpp',
})
filter({ 'options:not no-yoga-renames' })
do
includedirs({ './' })
forceincludes({ 'rive_yoga_renames.h' })
end
end

204
dependencies/rive_libjpeg_renames.h vendored Normal file
View File

@@ -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

241
dependencies/rive_yoga_renames.h vendored Normal file
View File

@@ -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

View File

@@ -54,4 +54,12 @@ do
})
forceincludes({ 'rive_harfbuzz_renames.h' })
end
filter({ 'options:not no-yoga-renames' })
do
includedirs({
dependencies,
})
forceincludes({ 'rive_yoga_renames.h' })
end
end

View File

@@ -60,6 +60,14 @@ do
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' })