feat: Move all third-party deps into git submodules (#1083)

This also normalizes the structure of all submodule folders so that
there is a clear place to put configurations, outside the submodule
source, but limited in scope to that folder.

Issue #1047 (New build system)
This commit is contained in:
Joey Parrish 2022-08-17 10:42:00 -07:00 committed by GitHub
parent 31e116faec
commit 1ff26b4783
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 245 additions and 346 deletions

5
.gitignore vendored
View File

@ -14,8 +14,3 @@
.settings
build/
/packager/docs/
/packager/third_party/icu/
/packager/third_party/libpng/src/
/packager/third_party/libwebm/src/
/packager/third_party/modp_b64/
/packager/third_party/zlib/

29
.gitmodules vendored
View File

@ -1,18 +1,33 @@
[submodule "packager/testing/googletest"]
[submodule "packager/third_party/googletest/source"]
path = packager/third_party/googletest/source
url = https://github.com/google/googletest
[submodule "packager/third_party/abseil-cpp"]
[submodule "packager/third_party/abseil-cpp/source"]
path = packager/third_party/abseil-cpp/source
url = https://github.com/abseil/abseil-cpp
[submodule "packager/third_party/curl"]
[submodule "packager/third_party/curl/source"]
path = packager/third_party/curl/source
url = https://github.com/curl/curl
[submodule "packager/third_party/glog"]
[submodule "packager/third_party/glog/source"]
path = packager/third_party/glog/source
url = https://github.com/google/glog
[submodule "packager/third_party/json"]
path = packager/third_party/json
[submodule "packager/third_party/json/source"]
path = packager/third_party/json/source
url = https://github.com/nlohmann/json
[submodule "packager/third_party/mbedtls"]
[submodule "packager/third_party/mbedtls/source"]
path = packager/third_party/mbedtls/source
url = https://github.com/Mbed-TLS/mbedtls
[submodule "packager/third_party/zlib/source"]
path = packager/third_party/zlib/source
url = https://github.com/joeyparrish/zlib
[submodule "packager/third_party/libpng/source"]
path = packager/third_party/libpng/source
url = https://github.com/glennrp/libpng
[submodule "packager/third_party/libwebm/source"]
path = packager/third_party/libwebm/source
url = https://github.com/webmproject/libwebm
[submodule "packager/third_party/libxml2/source"]
path = packager/third_party/libxml2/source
url = https://gitlab.gnome.org/GNOME/libxml2
[submodule "packager/third_party/protobuf/source"]
path = packager/third_party/protobuf/source
url = https://github.com/protocolbuffers/protobuf

View File

@ -31,4 +31,9 @@ add_subdirectory(curl EXCLUDE_FROM_ALL)
add_subdirectory(glog EXCLUDE_FROM_ALL)
add_subdirectory(googletest EXCLUDE_FROM_ALL)
add_subdirectory(json EXCLUDE_FROM_ALL)
add_subdirectory(libpng EXCLUDE_FROM_ALL)
add_subdirectory(libwebm EXCLUDE_FROM_ALL)
add_subdirectory(libxml2 EXCLUDE_FROM_ALL)
add_subdirectory(mbedtls EXCLUDE_FROM_ALL)
add_subdirectory(protobuf EXCLUDE_FROM_ALL)
add_subdirectory(zlib EXCLUDE_FROM_ALL)

View File

@ -6,8 +6,6 @@
# CMake build file to host abseil-cpp configuration.
# Variables that must be defined for third-party libraries.
# This will be the new default, so turn it on now to suppress a warning.
set(ABSL_PROPAGATE_CXX_STD ON)

View File

@ -15,5 +15,10 @@ set(WITH_GTEST OFF)
# Don't depend on or search for libunwind.
set(WITH_UNWIND OFF)
# Disable this warning/error, which occurs in demangle.c on macOS:
if(NOT MSVC)
add_compile_options(-Wno-shorten-64-to-32)
endif()
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

View File

@ -0,0 +1,12 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host the nlohmann json library configuration.
# No configuration is currently required.
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

View File

@ -0,0 +1,30 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host libpng configuration.
# Turn these features on.
set(PNG_STATIC ON)
set(PNG_HARDWARE_OPTIMIZATIONS ON)
# Turn these features off.
set(PNG_SHARED OFF)
set(PNG_TESTS OFF)
set(PNG_FRAMEWORK OFF)
set(PNG_DEBUG OFF)
# Don't install anything.
set(SKIP_INSTALL_ALL ON)
# A confusing name, but this means "let us tell you where to find zlib".
set(PNG_BUILD_ZLIB ON)
# Tell libpng where to find zlib headers.
set(ZLIB_INCLUDE_DIR ../zlib/source/)
# Tell libpng where to find zlib library to link to.
set(ZLIB_LIBRARY zlibstatic)
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

View File

@ -1,52 +0,0 @@
# Copyright 2020 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
{
'targets': [
{
'target_name': 'libpng',
'type': 'static_library',
'sources': [
'src/png.c',
'src/pngerror.c',
'src/pngget.c',
'src/pngmem.c',
'src/pngpread.c',
'src/pngread.c',
'src/pngrio.c',
'src/pngrtran.c',
'src/pngrutil.c',
'src/pngset.c',
'src/pngtrans.c',
'src/pngwio.c',
'src/pngwrite.c',
'src/pngwtran.c',
'src/pngwutil.c',
],
'include_dirs': [
'.',
'src',
],
'dependencies': [
'../zlib/zlib.gyp:zlib',
],
# Disable all CPU-specific optimizations, which may fail to link because
# we don't have a CPU-specific set of source files.
'defines': [
'PNG_ARM_NEON_OPT=0',
'PNG_INTEL_SSE_OPT=0',
'PNG_MIPS_MSA_OPT=0',
'PNG_POWERPC_VSX_OPT=0',
],
'direct_dependent_settings': {
'include_dirs': [
'.',
'src',
],
},
},
],
}

View File

@ -1,219 +0,0 @@
/* pnglibconf.h - library build configuration */
/* libpng version 1.6.37 */
/* Copyright (c) 2018-2019 Cosmin Truta */
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
/* This code is released under the libpng license. */
/* For conditions of distribution and use, see the disclaimer */
/* and license in png.h */
/* pnglibconf.h */
/* Machine generated file: DO NOT EDIT */
/* Derived from: scripts/pnglibconf.dfa */
#ifndef PNGLCONF_H
#define PNGLCONF_H
/* options */
#define PNG_16BIT_SUPPORTED
#define PNG_ALIGNED_MEMORY_SUPPORTED
/*#undef PNG_ARM_NEON_API_SUPPORTED*/
/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/
#define PNG_BENIGN_ERRORS_SUPPORTED
#define PNG_BENIGN_READ_ERRORS_SUPPORTED
/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/
#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
#define PNG_COLORSPACE_SUPPORTED
#define PNG_CONSOLE_IO_SUPPORTED
#define PNG_CONVERT_tIME_SUPPORTED
#define PNG_EASY_ACCESS_SUPPORTED
/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
#define PNG_ERROR_TEXT_SUPPORTED
#define PNG_FIXED_POINT_SUPPORTED
#define PNG_FLOATING_ARITHMETIC_SUPPORTED
#define PNG_FLOATING_POINT_SUPPORTED
#define PNG_FORMAT_AFIRST_SUPPORTED
#define PNG_FORMAT_BGR_SUPPORTED
#define PNG_GAMMA_SUPPORTED
#define PNG_GET_PALETTE_MAX_SUPPORTED
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
#define PNG_INCH_CONVERSIONS_SUPPORTED
#define PNG_INFO_IMAGE_SUPPORTED
#define PNG_IO_STATE_SUPPORTED
#define PNG_MNG_FEATURES_SUPPORTED
#define PNG_POINTER_INDEXING_SUPPORTED
/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/
/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/
#define PNG_PROGRESSIVE_READ_SUPPORTED
#define PNG_READ_16BIT_SUPPORTED
#define PNG_READ_ALPHA_MODE_SUPPORTED
#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
#define PNG_READ_BACKGROUND_SUPPORTED
#define PNG_READ_BGR_SUPPORTED
#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED
#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
#define PNG_READ_COMPRESSED_TEXT_SUPPORTED
#define PNG_READ_EXPAND_16_SUPPORTED
#define PNG_READ_EXPAND_SUPPORTED
#define PNG_READ_FILLER_SUPPORTED
#define PNG_READ_GAMMA_SUPPORTED
#define PNG_READ_GET_PALETTE_MAX_SUPPORTED
#define PNG_READ_GRAY_TO_RGB_SUPPORTED
#define PNG_READ_INTERLACING_SUPPORTED
#define PNG_READ_INT_FUNCTIONS_SUPPORTED
#define PNG_READ_INVERT_ALPHA_SUPPORTED
#define PNG_READ_INVERT_SUPPORTED
#define PNG_READ_OPT_PLTE_SUPPORTED
#define PNG_READ_PACKSWAP_SUPPORTED
#define PNG_READ_PACK_SUPPORTED
#define PNG_READ_QUANTIZE_SUPPORTED
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
#define PNG_READ_SCALE_16_TO_8_SUPPORTED
#define PNG_READ_SHIFT_SUPPORTED
#define PNG_READ_STRIP_16_TO_8_SUPPORTED
#define PNG_READ_STRIP_ALPHA_SUPPORTED
#define PNG_READ_SUPPORTED
#define PNG_READ_SWAP_ALPHA_SUPPORTED
#define PNG_READ_SWAP_SUPPORTED
#define PNG_READ_TEXT_SUPPORTED
#define PNG_READ_TRANSFORMS_SUPPORTED
#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_READ_USER_CHUNKS_SUPPORTED
#define PNG_READ_USER_TRANSFORM_SUPPORTED
#define PNG_READ_bKGD_SUPPORTED
#define PNG_READ_cHRM_SUPPORTED
#define PNG_READ_eXIf_SUPPORTED
#define PNG_READ_gAMA_SUPPORTED
#define PNG_READ_hIST_SUPPORTED
#define PNG_READ_iCCP_SUPPORTED
#define PNG_READ_iTXt_SUPPORTED
#define PNG_READ_oFFs_SUPPORTED
#define PNG_READ_pCAL_SUPPORTED
#define PNG_READ_pHYs_SUPPORTED
#define PNG_READ_sBIT_SUPPORTED
#define PNG_READ_sCAL_SUPPORTED
#define PNG_READ_sPLT_SUPPORTED
#define PNG_READ_sRGB_SUPPORTED
#define PNG_READ_tEXt_SUPPORTED
#define PNG_READ_tIME_SUPPORTED
#define PNG_READ_tRNS_SUPPORTED
#define PNG_READ_zTXt_SUPPORTED
#define PNG_SAVE_INT_32_SUPPORTED
#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_SEQUENTIAL_READ_SUPPORTED
#define PNG_SETJMP_SUPPORTED
#define PNG_SET_OPTION_SUPPORTED
#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_SET_USER_LIMITS_SUPPORTED
#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED
#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED
#define PNG_SIMPLIFIED_READ_SUPPORTED
#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
#define PNG_SIMPLIFIED_WRITE_SUPPORTED
#define PNG_STDIO_SUPPORTED
#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_TEXT_SUPPORTED
#define PNG_TIME_RFC1123_SUPPORTED
#define PNG_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_USER_CHUNKS_SUPPORTED
#define PNG_USER_LIMITS_SUPPORTED
#define PNG_USER_MEM_SUPPORTED
#define PNG_USER_TRANSFORM_INFO_SUPPORTED
#define PNG_USER_TRANSFORM_PTR_SUPPORTED
#define PNG_WARNINGS_SUPPORTED
#define PNG_WRITE_16BIT_SUPPORTED
#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
#define PNG_WRITE_BGR_SUPPORTED
#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
#define PNG_WRITE_FILLER_SUPPORTED
#define PNG_WRITE_FILTER_SUPPORTED
#define PNG_WRITE_FLUSH_SUPPORTED
#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED
#define PNG_WRITE_INTERLACING_SUPPORTED
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
#define PNG_WRITE_INVERT_SUPPORTED
#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
#define PNG_WRITE_PACKSWAP_SUPPORTED
#define PNG_WRITE_PACK_SUPPORTED
#define PNG_WRITE_SHIFT_SUPPORTED
#define PNG_WRITE_SUPPORTED
#define PNG_WRITE_SWAP_ALPHA_SUPPORTED
#define PNG_WRITE_SWAP_SUPPORTED
#define PNG_WRITE_TEXT_SUPPORTED
#define PNG_WRITE_TRANSFORMS_SUPPORTED
#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_WRITE_USER_TRANSFORM_SUPPORTED
#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
#define PNG_WRITE_bKGD_SUPPORTED
#define PNG_WRITE_cHRM_SUPPORTED
#define PNG_WRITE_eXIf_SUPPORTED
#define PNG_WRITE_gAMA_SUPPORTED
#define PNG_WRITE_hIST_SUPPORTED
#define PNG_WRITE_iCCP_SUPPORTED
#define PNG_WRITE_iTXt_SUPPORTED
#define PNG_WRITE_oFFs_SUPPORTED
#define PNG_WRITE_pCAL_SUPPORTED
#define PNG_WRITE_pHYs_SUPPORTED
#define PNG_WRITE_sBIT_SUPPORTED
#define PNG_WRITE_sCAL_SUPPORTED
#define PNG_WRITE_sPLT_SUPPORTED
#define PNG_WRITE_sRGB_SUPPORTED
#define PNG_WRITE_tEXt_SUPPORTED
#define PNG_WRITE_tIME_SUPPORTED
#define PNG_WRITE_tRNS_SUPPORTED
#define PNG_WRITE_zTXt_SUPPORTED
#define PNG_bKGD_SUPPORTED
#define PNG_cHRM_SUPPORTED
#define PNG_eXIf_SUPPORTED
#define PNG_gAMA_SUPPORTED
#define PNG_hIST_SUPPORTED
#define PNG_iCCP_SUPPORTED
#define PNG_iTXt_SUPPORTED
#define PNG_oFFs_SUPPORTED
#define PNG_pCAL_SUPPORTED
#define PNG_pHYs_SUPPORTED
#define PNG_sBIT_SUPPORTED
#define PNG_sCAL_SUPPORTED
#define PNG_sPLT_SUPPORTED
#define PNG_sRGB_SUPPORTED
#define PNG_tEXt_SUPPORTED
#define PNG_tIME_SUPPORTED
#define PNG_tRNS_SUPPORTED
#define PNG_zTXt_SUPPORTED
/* end of options */
/* settings */
#define PNG_API_RULE 0
#define PNG_DEFAULT_READ_MACROS 1
#define PNG_GAMMA_THRESHOLD_FIXED 5000
#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE
#define PNG_INFLATE_BUF_SIZE 1024
#define PNG_LINKAGE_API extern
#define PNG_LINKAGE_CALLBACK extern
#define PNG_LINKAGE_DATA extern
#define PNG_LINKAGE_FUNCTION extern
#define PNG_MAX_GAMMA_8 11
#define PNG_QUANTIZE_BLUE_BITS 5
#define PNG_QUANTIZE_GREEN_BITS 5
#define PNG_QUANTIZE_RED_BITS 5
#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1)
#define PNG_TEXT_Z_DEFAULT_STRATEGY 0
#define PNG_USER_CHUNK_CACHE_MAX 1000
#define PNG_USER_CHUNK_MALLOC_MAX 8000000
#define PNG_USER_HEIGHT_MAX 1000000
#define PNG_USER_WIDTH_MAX 1000000
#define PNG_ZBUF_SIZE 8192
#define PNG_ZLIB_VERNUM 0x1280
#define PNG_Z_DEFAULT_COMPRESSION (-1)
#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0
#define PNG_Z_DEFAULT_STRATEGY 1
#define PNG_sCAL_PRECISION 5
#define PNG_sRGB_PROFILE_CHECKS 2
/* end of settings */
#endif /* PNGLCONF_H */

1
packager/third_party/libpng/source vendored Submodule

@ -0,0 +1 @@
Subproject commit a40189cf881e9f0db80511c382292a5604c3c3d1

View File

@ -0,0 +1,20 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host libwebm configuration.
# Enable warnings-as-errors.
set(ENABLE_WERROR ON)
# Disable these settings, none of which we need.
set(ENABLE_WEBMTS OFF)
set(ENABLE_WEBMINFO OFF)
set(ENABLE_TESTS OFF)
set(ENABLE_IWYU OFF)
set(ENABLE_WEBM_PARSER OFF)
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

View File

@ -1,37 +0,0 @@
# Copyright 2015 Google Inc. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
{
'includes': [
],
'targets': [
{
'target_name': 'mkvmuxer',
'type': 'static_library',
'sources': [
'src/common/webmids.h',
'src/mkvmuxer/mkvmuxer.cc',
'src/mkvmuxer/mkvmuxer.h',
'src/mkvmuxer/mkvmuxertypes.h',
'src/mkvmuxer/mkvmuxerutil.cc',
'src/mkvmuxer/mkvmuxerutil.h',
'src/mkvmuxer/mkvwriter.cc',
'src/mkvmuxer/mkvwriter.h',
'src/mkvmuxer.hpp'
'src/mkvmuxerutil.hpp'
'src/webmids.hpp'
],
'include_dirs': [
'src',
],
'direct_dependent_settings': {
'include_dirs': [
'src',
],
},
},
],
}

@ -0,0 +1 @@
Subproject commit 82a1d2330e113a14e545d806eb5419f09374255f

View File

@ -0,0 +1,62 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host libxml2 configuration.
# Turn these features off.
set(BUILD_SHARED_LIBS OFF)
set(LIBXML2_WITH_C14N OFF)
set(LIBXML2_WITH_CATALOG OFF)
set(LIBXML2_WITH_DEBUG OFF)
set(LIBXML2_WITH_FTP OFF)
set(LIBXML2_WITH_HTML OFF)
set(LIBXML2_WITH_HTTP OFF)
set(LIBXML2_WITH_ICONV OFF)
set(LIBXML2_WITH_ICU OFF)
set(LIBXML2_WITH_ISO8859X OFF)
set(LIBXML2_WITH_LEGACY OFF)
set(LIBXML2_WITH_LZMA OFF)
set(LIBXML2_WITH_MEM_DEBUG OFF)
set(LIBXML2_WITH_MODULES OFF)
set(LIBXML2_WITH_OUTPUT OFF)
set(LIBXML2_WITH_PATTERN OFF)
set(LIBXML2_WITH_PROGRAMS OFF)
set(LIBXML2_WITH_PUSH OFF)
set(LIBXML2_WITH_PYTHON OFF)
set(LIBXML2_WITH_READER OFF)
set(LIBXML2_WITH_REGEXPS OFF)
set(LIBXML2_WITH_RUN_DEBUG OFF)
set(LIBXML2_WITH_SAX1 OFF)
set(LIBXML2_WITH_SCHEMAS OFF)
set(LIBXML2_WITH_SCHEMATRON OFF)
set(LIBXML2_WITH_TESTS OFF)
set(LIBXML2_WITH_THREAD_ALLOC OFF)
set(LIBXML2_WITH_TRIO OFF)
set(LIBXML2_WITH_UNICODE OFF)
set(LIBXML2_WITH_VALID OFF)
set(LIBXML2_WITH_WRITER OFF)
set(LIBXML2_WITH_XINCLUDE OFF)
set(LIBXML2_WITH_XPATH OFF)
set(LIBXML2_WITH_XPTR OFF)
set(LIBXML2_WITH_XPTR_LOCS OFF)
set(LIBXML2_WITH_ZLIB OFF)
# Turn these features on. Note that it fails to build with THREADS turned off.
set(LIBXML2_WITH_THREADS ON)
set(LIBXML2_WITH_TREE ON)
# Disable this warning/error, which occurs in buf.c:
add_compile_options(-Wno-format-extra-args)
# Disable this warning/error, which occurs in encoding.c:
add_compile_options(-Wno-unused-but-set-variable)
# Disable this warning/error, which occurs in xmlIO.c:
add_compile_options(-Wno-unused-parameter)
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)
# Their CMakeLists.txt use a weird case for the library. Alias it.
add_library(libxml2 ALIAS LibXml2)

@ -0,0 +1 @@
Subproject commit 7846b0a677f8d3ce72486125fa281e92ac9970e8

View File

@ -0,0 +1,37 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host protobuf configuration.
# Turn these features off.
set(protobuf_INSTALL OFF)
set(protobuf_BUILD_TESTS OFF)
set(protobuf_BUILD_CONFORMANCE OFF)
set(protobuf_BUILD_EXAMPLES OFF)
set(protobuf_BUILD_LIBPROTOC OFF)
set(protobuf_BUILD_SHARED_LIBS OFF)
set(protobuf_WITH_ZLIB OFF)
# Turn these features on.
set(protobuf_BUILD_PROTOC_BINARIES ON)
set(protobuf_DISABLE_RTTI ON)
# Disable this error/warning, which occurs in
# src/google/protobuf/stubs/stringprintf.cc:
add_compile_options(-Wno-sign-compare)
# Disable this error/warning, which occurs in
# src/google/protobuf/compiler/cpp/parse_function_generator.cc:
add_compile_options(-Wno-missing-field-initializers)
# There are several interfaces with ununused parameters.
add_compile_options(-Wno-unused-parameter)
# There are also redundant move calls.
add_compile_options(-Wno-redundant-move)
# Disable internal debugging features, which end up triggering further compiler
# errors.
add_definitions(-DNDEBUG)
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

@ -0,0 +1 @@
Subproject commit c9869dc7803eb0a21d7e589c40ff4f9288cd34ae

View File

@ -0,0 +1,21 @@
# Copyright 2022 Google LLC. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
# CMake build file to host zlib configuration.
# Tell zlib's build system not to rename zconf.h, which would leave the
# submodule in an unclean state.
set(RENAME_ZCONF OFF)
# Don't install anything.
set(SKIP_INSTALL_ALL ON)
# The configuration for x64 assembly in zlib's CMakeLists.txt doesn't seem to
# work, as the assembly files aren't in the repo for some reason. So don't set
# the AMD64 flag.
# With these set in scope of this folder, load the library's own CMakeLists.txt.
add_subdirectory(source)

18
packager/third_party/zlib/fork.md vendored Normal file
View File

@ -0,0 +1,18 @@
# zlib fork
This uses a fork of zlib, which is at
https://github.com/joeyparrish/zlib/tree/preview
We forked from upstream https://github.com/madler/zlib and merged the following
PRs:
- https://github.com/madler/zlib/pull/519, which contains code from
https://github.com/Togtja/zlib/tree/optional_zconf_rename. This gives us an
option to disable zlib's default CMake behavior of modifying the working
directory during configuration. This helps to keep the submodule clean.
- https://github.com/madler/zlib/pull/691, which contains code from
https://github.com/joeyparrish/zlib/tree/optional_tests. This gives us a
way to disable zlib's test targets.
When these PRs are merged, the fork can be deleted.

1
packager/third_party/zlib/source vendored Submodule

@ -0,0 +1 @@
Subproject commit 59acdd06fd89fee1f91a464373b1afd964f810a8

View File

@ -13,34 +13,18 @@ import sys
LICENSE_FILES = set(['LICENSE', 'LICENSE.TXT', 'COPYING'])
PRUNE_PATHS = [
# Identical to third_party/icu.
os.path.join('base', 'third_party', 'icu'),
# Used for testing, not in the binary build.
os.path.join('third_party', 'json'),
os.path.join('third_party', 'googletest'),
# Comes with Chromium base, not used in packager.
os.path.join('base', 'third_party', 'libevent'),
os.path.join('base', 'third_party', 'nspr'),
os.path.join('base', 'third_party', 'superfasthash'),
os.path.join('base', 'third_party', 'xdg_mime'),
os.path.join('base', 'third_party', 'xdg_user_dirs'),
# Dependencies of dependencies, not actually used in Packager.
os.path.join('third_party', 'libpng', 'source', 'contrib'),
# Used for development and test, not in the binary build.
os.path.join('buildtools', 'third_party', 'libc++', 'trunk', 'utils',
'google-benchmark'),
os.path.join('testing', 'gmock'),
os.path.join('testing', 'gtest'),
os.path.join('third_party', 'binutils'),
os.path.join('third_party', 'boringssl', 'src', 'third_party',
'googletest'),
os.path.join('third_party', 'gold'),
os.path.join('tools', 'gyp'),
# The Java side of icu, not used in Packager.
os.path.join('third_party', 'icu', 'source', 'icu4j'),
# Comes with Boringssl, not used in packager.
os.path.join('third_party', 'boringssl', 'src', 'third_party',
'android-cmake'),
# Comes with ICU, not used in packager.
# Misc. ICU scripts, not used in Packager.
os.path.join('third_party', 'icu', 'scripts'),
# Required by Chromium base, but not used in packager.
os.path.join('third_party', 'libevent'),
]
CC_FILE_TEMPLATE = """