From 0e6a49a5bc739256725b9301a0f31c8289631fa2 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Wed, 1 May 2019 18:32:17 +0200 Subject: [PATCH] Freetype clone env for no-SMID single file Fix freetype build issue for javascript platform. When disabling optimizations (SMID) in specific freetype, source files, we need to make sure to copy all other CPPFLAGS, not just override them. (cherry picked from commit 4f9408a0f8b15d7822057296f932d69a6a4611e2) --- modules/freetype/SCsub | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/freetype/SCsub b/modules/freetype/SCsub index 3e2068b8dbb..f6d7cdfc116 100644 --- a/modules/freetype/SCsub +++ b/modules/freetype/SCsub @@ -62,13 +62,6 @@ if env['builtin_freetype']: # Globally too, as freetype is used in scene (see bottom) env.Append(CCFLAGS=['/FI', '"modules/freetype/uwpdef.h"']) - sfnt = thirdparty_dir + 'src/sfnt/sfnt.c' - if env['platform'] == 'javascript': - # Forcibly undefine this macro so SIMD is not used in this file, - # since currently unsupported in WASM - sfnt = env_freetype.Object(sfnt, CPPFLAGS=['-U__OPTIMIZE__']) - thirdparty_sources += [sfnt] - env_freetype.Append(CPPPATH=[thirdparty_dir + "/include"]) # Also needed in main env for scene/ env.Append(CPPPATH=[thirdparty_dir + "/include"]) @@ -81,6 +74,16 @@ if env['builtin_freetype']: if env['builtin_libpng']: env_freetype.Append(CPPPATH=["#thirdparty/libpng"]) + sfnt = thirdparty_dir + 'src/sfnt/sfnt.c' + # Must be done after all CPPFLAGS are being set so we can copy them. + if env['platform'] == 'javascript': + # Forcibly undefine this macro so SIMD is not used in this file, + # since currently unsupported in WASM + tmp_env = env_freetype.Clone() + tmp_env.Append(CPPFLAGS=['-U__OPTIMIZE__']) + sfnt = tmp_env.Object(sfnt) + thirdparty_sources += [sfnt] + env_thirdparty = env_freetype.Clone() env_thirdparty.disable_warnings() lib = env_thirdparty.add_library("freetype_builtin", thirdparty_sources)