From 26b9e57e9bbf14ea8cfc3554972f6a6592889331 Mon Sep 17 00:00:00 2001 From: Ian Macphail Date: Wed, 18 Mar 2020 18:35:21 +0000 Subject: [PATCH 1/2] [[ BUILD ]] Switch dependencies to gyp files in thirdparty submodule This patch modifies any dependencies to thirdparty libraries within gyp files to refer to the gyp of that library within the thirdparty submodule rather than directly to the prebuilt/thirdparty.gyp file. Use of thirdparty library prebuilt binaries can now be controlled by setting the 'use_prebuilt_thirdparty' gyp variable, which has a default value of '1' (use prebuilt thirdparty libraries). --- config/thirdparty.gypi | 2 ++ engine/kernel-development.gyp | 2 +- engine/kernel-installer.gyp | 2 +- engine/kernel-server.gyp | 12 ++++++------ engine/kernel.gyp | 18 +++++++++--------- libfoundation/libfoundation.gyp | 2 +- libgraphics/libgraphics.gyp | 12 ++++++------ libscript/libscript.gyp | 2 +- revdb/revdb.gyp | 16 ++++++++-------- revpdfprinter/revpdfprinter.gyp | 4 ++-- revxml/revxml.gyp | 12 ++++++------ revzip/revzip.gyp | 8 ++++---- .../lc-compile-ffi-java.gyp | 2 +- toolchain/lc-compile/lc-compile.gyp | 2 +- toolchain/lc-compile/lc-run.gyp | 2 +- toolchain/lc-compile/src/lc-compile-lib.gyp | 2 +- toolchain/libcompile/libcompile.gyp | 2 +- 17 files changed, 52 insertions(+), 50 deletions(-) diff --git a/config/thirdparty.gypi b/config/thirdparty.gypi index be26e1295bb..2150ae78389 100644 --- a/config/thirdparty.gypi +++ b/config/thirdparty.gypi @@ -21,5 +21,7 @@ 'use_system_libxslt%': 0, 'use_system_libz%': 0, 'use_system_libzip%': 0, + + 'use_prebuilt_thirdparty%': 1, }, } diff --git a/engine/kernel-development.gyp b/engine/kernel-development.gyp index 542cbd4ae11..8bdf8b41e55 100644 --- a/engine/kernel-development.gyp +++ b/engine/kernel-development.gyp @@ -50,7 +50,7 @@ 'kernel.gyp:kernel', '../thirdparty/libopenssl/libopenssl.gyp:libopenssl_stubs', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libz/libz.gyp:libz', ], 'sources': diff --git a/engine/kernel-installer.gyp b/engine/kernel-installer.gyp index a1d27fb33f8..14795d51e0d 100644 --- a/engine/kernel-installer.gyp +++ b/engine/kernel-installer.gyp @@ -37,7 +37,7 @@ 'dependencies': [ 'kernel.gyp:kernel', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libz/libz.gyp:libz', ], 'includes': diff --git a/engine/kernel-server.gyp b/engine/kernel-server.gyp index 59e473b5553..b067bf90cc2 100644 --- a/engine/kernel-server.gyp +++ b/engine/kernel-server.gyp @@ -57,12 +57,12 @@ '../prebuilt/libcurl.gyp:libcurl', '../prebuilt/libopenssl.gyp:libopenssl', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_pcre', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_jpeg', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_gif', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_png', + '../thirdparty/libpcre/libpcre.gyp:libpcre', + '../thirdparty/libjpeg/libjpeg.gyp:libjpeg', + '../thirdparty/libgif/libgif.gyp:libgif', + '../thirdparty/libpng/libpng.gyp:libpng', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libz/libz.gyp:libz', 'engine-common.gyp:quicktime_stubs', @@ -94,7 +94,7 @@ { 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_cairo', + '../thirdparty/libcairo/libcairo.gyp:libcairo', ], 'defines': diff --git a/engine/kernel.gyp b/engine/kernel.gyp index 3f6bd5f6972..3b1f082c0c3 100644 --- a/engine/kernel.gyp +++ b/engine/kernel.gyp @@ -24,12 +24,12 @@ '../prebuilt/libopenssl.gyp:libopenssl_headers', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_pcre', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_jpeg', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_gif', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_png', + '../thirdparty/libpcre/libpcre.gyp:libpcre', + '../thirdparty/libjpeg/libjpeg.gyp:libjpeg', + '../thirdparty/libgif/libgif.gyp:libgif', + '../thirdparty/libpng/libpng.gyp:libpng', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libz/libz.gyp:libz', 'engine-common.gyp:encode_version', 'engine-common.gyp:quicktime_stubs', @@ -79,9 +79,9 @@ 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_skia', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_freetype', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_harfbuzz', + '../thirdparty/libskia/libskia.gyp:libskia', + '../thirdparty/libfreetype/libfreetype.gyp:libfreetype', + '../thirdparty/libharfbuzz/libharfbuzz.gyp:libharfbuzz', ], 'link_settings': @@ -109,7 +109,7 @@ 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_skia', + '../thirdparty/libskia/libskia.gyp:libskia', ], }, ], diff --git a/libfoundation/libfoundation.gyp b/libfoundation/libfoundation.gyp index 3bd604579da..7754a904ec9 100644 --- a/libfoundation/libfoundation.gyp +++ b/libfoundation/libfoundation.gyp @@ -47,7 +47,7 @@ [ '../prebuilt/libicu.gyp:libicu', '../prebuilt/libicu.gyp:encode_minimal_icu_data', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libz/libz.gyp:libz', '../thirdparty/libffi/libffi.gyp:libffi', ], diff --git a/libgraphics/libgraphics.gyp b/libgraphics/libgraphics.gyp index e13c40bd45a..c7f580f8642 100644 --- a/libgraphics/libgraphics.gyp +++ b/libgraphics/libgraphics.gyp @@ -14,10 +14,10 @@ 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_gif', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_png', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_jpeg', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_skia', + '../thirdparty/libgif/libgif.gyp:libgif', + '../thirdparty/libpng/libpng.gyp:libpng', + '../thirdparty/libjpeg/libjpeg.gyp:libjpeg', + '../thirdparty/libskia/libskia.gyp:libskia', '../libfoundation/libfoundation.gyp:libFoundation', ], @@ -28,8 +28,8 @@ { 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_freetype', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_harfbuzz', + '../thirdparty/libfreetype/libfreetype.gyp:libfreetype', + '../thirdparty/libharfbuzz/libharfbuzz.gyp:libharfbuzz', '../prebuilt/libicu.gyp:libicu', ], }, diff --git a/libscript/libscript.gyp b/libscript/libscript.gyp index 87a31ceedb6..338c459ed03 100644 --- a/libscript/libscript.gyp +++ b/libscript/libscript.gyp @@ -48,7 +48,7 @@ 'dependencies': [ '../libfoundation/libfoundation.gyp:libFoundation', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../thirdparty/libffi/libffi.gyp:libffi', ], 'include_dirs': diff --git a/revdb/revdb.gyp b/revdb/revdb.gyp index a516499b2a3..7a544a08c22 100644 --- a/revdb/revdb.gyp +++ b/revdb/revdb.gyp @@ -98,7 +98,7 @@ 'dependencies': [ '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_mysql', + '../thirdparty/libmysql/libmysql.gyp:libmysql', '../thirdparty/libopenssl/libopenssl.gyp:libopenssl_stubs', ], @@ -156,7 +156,7 @@ 'dependencies': [ '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_mysql', + '../thirdparty/libmysql/libmysql.gyp:libmysql', '../thirdparty/libopenssl/libopenssl.gyp:libopenssl_stubs', ], @@ -223,7 +223,7 @@ { 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_iodbc', + '../thirdparty/libiodbc/libiodbc.gyp:libiodbc', ], }, { @@ -287,7 +287,7 @@ { 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_iodbc', + '../thirdparty/libiodbc/libiodbc.gyp:libiodbc', ], }, { @@ -360,7 +360,7 @@ [ '../libexternal/libexternal.gyp:libExternal', '../thirdparty/libopenssl/libopenssl.gyp:libopenssl_stubs', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_pq', + '../thirdparty/libpq/libpq.gyp:libpq', ], 'include_dirs': @@ -405,7 +405,7 @@ 'dependencies': [ '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_pq', + '../thirdparty/libpq/libpq.gyp:libpq', '../thirdparty/libopenssl/libopenssl.gyp:libopenssl_stubs', ], @@ -467,7 +467,7 @@ 'dependencies': [ '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_sqlite', + '../thirdparty/libsqlite/libsqlite.gyp:libsqlite', ], 'include_dirs': @@ -574,7 +574,7 @@ 'dependencies': [ '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_sqlite', + '../thirdparty/libsqlite/libsqlite.gyp:libsqlite', ], 'include_dirs': diff --git a/revpdfprinter/revpdfprinter.gyp b/revpdfprinter/revpdfprinter.gyp index 93f77bb0601..248e438e721 100644 --- a/revpdfprinter/revpdfprinter.gyp +++ b/revpdfprinter/revpdfprinter.gyp @@ -17,7 +17,7 @@ [ '../libcore/libcore.gyp:libCore', '../libexternal/libexternal.gyp:libExternal', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_cairo', + '../thirdparty/libcairo/libcairo.gyp:libcairo', ], 'include_dirs': @@ -76,7 +76,7 @@ 'dependencies': [ - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_freetype', + '../thirdparty/libfreetype/libfreetype.gyp:libfreetype', ], }, ], diff --git a/revxml/revxml.gyp b/revxml/revxml.gyp index 8e339850f66..791db500b9c 100644 --- a/revxml/revxml.gyp +++ b/revxml/revxml.gyp @@ -30,9 +30,9 @@ [ '../libexternal/libexternal.gyp:libExternal', '../libexternal/libexternal.gyp:libExternal-symbol-exports', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_xml', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_xslt', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libxml/libxml.gyp:libxml', + '../thirdparty/libxslt/libxslt.gyp:libxslt', + '../thirdparty/libz/libz.gyp:libz', ], 'include_dirs': @@ -80,9 +80,9 @@ [ '../libexternal/libexternal.gyp:libExternal', '../libexternal/libexternal.gyp:libExternal-symbol-exports', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_xml', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_xslt', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libxml/libxml.gyp:libxml', + '../thirdparty/libxslt/libxslt.gyp:libxslt', + '../thirdparty/libz/libz.gyp:libz', ], 'include_dirs': diff --git a/revzip/revzip.gyp b/revzip/revzip.gyp index 9f31896adc3..1d34e3267d3 100644 --- a/revzip/revzip.gyp +++ b/revzip/revzip.gyp @@ -25,8 +25,8 @@ [ '../libexternal/libexternal.gyp:libExternal', '../libexternal/libexternal.gyp:libExternal-symbol-exports', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_zip', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libzip/libzip.gyp:libzip', + '../thirdparty/libz/libz.gyp:libz', ], 'sources': @@ -77,8 +77,8 @@ [ '../libexternal/libexternal.gyp:libExternal', '../libexternal/libexternal.gyp:libExternal-symbol-exports', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_zip', - '../prebuilt/thirdparty.gyp:thirdparty_prebuilt_z', + '../thirdparty/libzip/libzip.gyp:libzip', + '../thirdparty/libz/libz.gyp:libz', ], 'sources': diff --git a/toolchain/lc-compile-ffi-java/lc-compile-ffi-java.gyp b/toolchain/lc-compile-ffi-java/lc-compile-ffi-java.gyp index 6e54aa0f6e2..c5acf491a5f 100644 --- a/toolchain/lc-compile-ffi-java/lc-compile-ffi-java.gyp +++ b/toolchain/lc-compile-ffi-java/lc-compile-ffi-java.gyp @@ -15,7 +15,7 @@ 'dependencies': [ - '../../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../../thirdparty/libffi/libffi.gyp:libffi', ], 'conditions': diff --git a/toolchain/lc-compile/lc-compile.gyp b/toolchain/lc-compile/lc-compile.gyp index 2f3d6dd29cd..7a8ccddb264 100644 --- a/toolchain/lc-compile/lc-compile.gyp +++ b/toolchain/lc-compile/lc-compile.gyp @@ -15,7 +15,7 @@ 'dependencies': [ - '../../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../../thirdparty/libffi/libffi.gyp:libffi', ], 'conditions': diff --git a/toolchain/lc-compile/lc-run.gyp b/toolchain/lc-compile/lc-run.gyp index 01c8b9988bd..cf594c47d09 100644 --- a/toolchain/lc-compile/lc-run.gyp +++ b/toolchain/lc-compile/lc-run.gyp @@ -19,7 +19,7 @@ '../../libfoundation/libfoundation.gyp:libFoundation', '../../libscript/libscript.gyp:libScript', '../../libscript/libscript.gyp:stdscript', - '../../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../../thirdparty/libffi/libffi.gyp:libffi', ], 'sources': diff --git a/toolchain/lc-compile/src/lc-compile-lib.gyp b/toolchain/lc-compile/src/lc-compile-lib.gyp index 59ce39af68a..7349e2400ac 100644 --- a/toolchain/lc-compile/src/lc-compile-lib.gyp +++ b/toolchain/lc-compile/src/lc-compile-lib.gyp @@ -20,7 +20,7 @@ '../../../libfoundation/libfoundation.gyp:libFoundation', '../../../libscript/libscript.gyp:libScript', '../../libcompile/libcompile.gyp:libcompile', - '../../../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../../../thirdparty/libffi/libffi.gyp:libffi', ], 'sources': diff --git a/toolchain/libcompile/libcompile.gyp b/toolchain/libcompile/libcompile.gyp index 28020adfa0d..2bab679929b 100644 --- a/toolchain/libcompile/libcompile.gyp +++ b/toolchain/libcompile/libcompile.gyp @@ -18,7 +18,7 @@ [ '../../libfoundation/libfoundation.gyp:libFoundation', '../../libscript/libscript.gyp:libScript', - '../../prebuilt/thirdparty.gyp:thirdparty_prebuilt_ffi', + '../../thirdparty/libffi/libffi.gyp:libffi', ], 'sources': From 4f62f2aee63cffd9ee1f846f58159923a643f4e8 Mon Sep 17 00:00:00 2001 From: Ian Macphail Date: Thu, 19 Mar 2020 12:04:51 +0000 Subject: [PATCH 2/2] [[ Build ]] Detect BUILD_THIRDPARTY env var in config.py script This patch modifies the config.py script to check if the BUILD_THIRDPARTY environment variable has been defined, and if so pass the variable 'use_prebuilt_thirdparty' to gyp with a value of 0, disabling the use of prebuilt thirdparty libraries and causing those libraries to be compiled from source. --- config.py | 4 ++++ prebuilt/scripts/build-thirdparty.bat | 3 +++ prebuilt/scripts/build-thirdparty.sh | 3 +++ 3 files changed, 10 insertions(+) diff --git a/config.py b/config.py index b217626d9f1..746106d9867 100755 --- a/config.py +++ b/config.py @@ -152,6 +152,7 @@ def process_env_options(opts): 'AR', 'CC', 'CXX', 'LINK', 'OBJCOPY', 'OBJDUMP', 'STRIP', 'JAVA_SDK', 'NODE_JS', 'BUILD_EDITION', 'CC_PREFIX', 'CROSS', 'SYSROOT', 'AUX_SYSROOT', 'TRIPLE', 'MS_SPEECH_SDK5', 'QUICKTIME_SDK', + 'BUILD_THIRDPARTY', ) for v in vars: opts[v] = os.getenv(v) @@ -720,6 +721,9 @@ def core_gyp_args(opts): args.append('-Duniform_arch=' + opts['UNIFORM_ARCH']) + if opts['BUILD_THIRDPARTY'] is not None: + args.append('-Duse_prebuilt_thirdparty=0') + return args def export_opts(opts, names): diff --git a/prebuilt/scripts/build-thirdparty.bat b/prebuilt/scripts/build-thirdparty.bat index 50af72d3102..9411b3f4711 100644 --- a/prebuilt/scripts/build-thirdparty.bat +++ b/prebuilt/scripts/build-thirdparty.bat @@ -45,6 +45,9 @@ IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL% ECHO Configuring Thirdparty for %BUILDTRIPLE% ECHO ========== CONFIGURING ========== >%THIRDPARTY_BUILD_LOG% +REM Configure project files to build thirdparty libraries +SET BUILD_THIRDPARTY=1 + REM Generate project files cd %_TOOLS_DIR%.. python config.py --platform %BUILD_PLATFORM% >>%THIRDPARTY_BUILD_LOG% 2>>&1 diff --git a/prebuilt/scripts/build-thirdparty.sh b/prebuilt/scripts/build-thirdparty.sh index e53edef1646..e88362b4968 100755 --- a/prebuilt/scripts/build-thirdparty.sh +++ b/prebuilt/scripts/build-thirdparty.sh @@ -57,6 +57,9 @@ elif [ "$PLATFORM" == "win32" ]; then LIBPATH="" fi +# Configure project files to build thirdparty libraries +export BUILD_THIRDPARTY=1 + make -C .. config-$MAKE_TARGET if [ "$PLATFORM" == "mac" ] || [ "$PLATFORM" == "ios" ] ; then