Issue #61 - Reinstate buildability with shared gkmedias dll

This fully works for splitting gkmedias.dll back out from xul with one exception
which is Skia throwing undefined externals when linking gkmedias.
This commit is contained in:
Moonchild 2021-01-02 13:35:39 +00:00 committed by roytam1
commit 371d7cf05d
31 changed files with 804 additions and 16 deletions

View file

@ -28,6 +28,9 @@ if CONFIG['HOST_OS_ARCH'] != 'WINNT':
# while the program here is in C.
HostProgram('nsinstall_real', c_only=True)
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['GKMEDIAS_SHARED_LIBRARY'] = True
PYTHON_UNIT_TESTS += [
'tests/test_mozbuild_reading.py',
'tests/unit-expandlibs.py',

View file

@ -1070,6 +1070,22 @@ QtSparql/qsparqlresult.h
#if MOZ_TREE_PIXMAN!=1
pixman.h
#endif
#ifdef GKMEDIAS_SHARED_LIBRARY
vpx/vpx_codec.h
vpx/vpx_decoder.h
vpx/vpx_encoder.h
vpx/vp8cx.h
vpx/vp8dx.h
vpx_mem/vpx_mem.h
vorbis/codec.h
theora/theoradec.h
tremor/ivorbiscodec.h
speex/speex_resampler.h
ogg/ogg.h
ogg/os_types.h
nestegg/nestegg.h
cubeb/cubeb.h
#endif
gst/gst.h
gst/app/gstappsink.h
gst/app/gstappsrc.h

View file

@ -145,6 +145,9 @@ IPDL_SOURCES += [
'PGMPVideoEncoder.ipdl',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# comment this out to use Unsafe Shmem for more performance
DEFINES['GMP_SAFE_SHMEM'] = True

View file

@ -175,6 +175,14 @@ EXPORTS.angle.KHR += [ 'include/KHR/khrplatform.h' ]
LOCAL_INCLUDES += [ 'include', 'src', 'src/common/third_party/numerics' ]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# This tells ANGLE to build the translator with declspec(dllexport) on Windows
# which we need to get these symbols exported from gkmedias
DEFINES['COMPONENT_BUILD'] = True
DEFINES['ANGLE_TRANSLATOR_IMPLEMENTATION'] = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -57,9 +57,13 @@ UNIFIED_SOURCES += [
'UtfCodec.cpp',
]
# tell graphite2 not to export symbols, we'll be linking it directly with
# thebes
DEFINES['GRAPHITE2_STATIC'] = True
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
DEFINES['GRAPHITE2_EXPORTING'] = True
else:
# tell graphite2 not to export symbols, we'll be linking it directly with
# thebes
DEFINES['GRAPHITE2_STATIC'] = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -56,6 +56,9 @@ UNIFIED_SOURCES += [
'vvar.cc',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True
@ -66,6 +69,10 @@ DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
DEFINES['OTS_GRAPHITE'] = 1
DEFINES['OTS_VARIATIONS'] = 1
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['OTS_DLL'] = True
DEFINES['OTS_DLL_EXPORTS'] = True
USE_LIBS += [
'brotli',
'woff2',

View file

@ -16,7 +16,10 @@ SOURCES += [
'transform_util.c',
]
FINAL_LIBRARY = 'xul'
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
if CONFIG['GNU_CC']:
CFLAGS += ['-Wno-missing-field-initializers']

View file

@ -84,6 +84,10 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
'skia/src/fonts/SkRemotableFontMgr.cpp',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['SKIA_DLL'] = 1
DEFINES['GR_DLL'] = 1
# We should autogenerate these SSE related flags.
if CONFIG['_MSC_VER']:

View file

@ -643,7 +643,6 @@ else:
'skia/src/opts/SkBlitRow_opts_none.cpp',
]
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True
@ -694,6 +693,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
'skia/src/fonts/SkRemotableFontMgr.cpp',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['SKIA_DLL'] = 1
DEFINES['GR_DLL'] = 1
DEFINES['SK_FONT_HOST_USE_SYSTEM_SETTINGS'] = 1
# We should autogenerate these SSE related flags.
if CONFIG['_MSC_VER']:

View file

@ -27,7 +27,7 @@ public:
* specified canvas. Also copies the target canvas matrix and clip bounds.
*/
SkPaintFilterCanvas(SkCanvas* canvas);
enum Type {
kPaint_Type,
kPoint_Type,

View file

@ -22,6 +22,7 @@
#include "SkLatticeIter.h"
#include "SkMatrixUtils.h"
#include "SkMetaData.h"
#include "SkNWayCanvas.h"
#include "SkNx.h"
#include "SkPaintPriv.h"
#include "SkPatchUtils.h"
@ -45,9 +46,10 @@
#include "GrContext.h"
#include "GrRenderTarget.h"
#include "SkGrPriv.h"
#endif
class SkNWayCanvas;
#define RETURN_ON_NULL(ptr) do { if (nullptr == (ptr)) return; } while (0)
/*

View file

@ -251,7 +251,7 @@ SkScalerContext* DWriteFontTypeface::onCreateScalerContext(const SkScalerContext
}
#ifdef MOZ_SKIA
IDWriteRenderingParams* GetDwriteRenderingParams(bool aGDI);
extern IDWriteRenderingParams* GetDwriteRenderingParams(bool aGDI);
#endif
void DWriteFontTypeface::onFilterRec(SkScalerContext::Rec* rec) const {

View file

@ -248,6 +248,9 @@ LOCAL_INCLUDES += ['/media/libyuv/include']
DEFINES['GRAPHITE2_STATIC'] = True
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['OTS_DLL'] = True
if CONFIG['CLANG_CXX']:
# Suppress warnings from Skia header files.
SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough']

11
layout/media/Makefile.in Normal file
View file

@ -0,0 +1,11 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(topsrcdir)/config/rules.mk
ifeq (WINNT,$(OS_TARGET))
symbols.def: symbols.def.in $(GLOBAL_DEPS)
$(call py_action,preprocessor,$(ACDEFINES) $< -o $@)
endif

View file

@ -6,16 +6,23 @@
with Files('**'):
BUG_COMPONENT = ('Core', 'Video/Audio')
# media/webrtc/signaling/test/common.build uses the gkmedias library,
# expecting at least some of what it contains to be linked, but not libxul,
# so we need to keep an independent pseudo-library, as well as the OS_LIBS
# on Windows for them to propagate there.
Library('gkmedias')
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
GeckoSharedLibrary('gkmedias', linkage=None)
USE_LIBS += [
'nspr',
]
else:
# media/webrtc/signaling/test/common.build uses the gkmedias library,
# expecting at least some of what it contains to be linked, but not libxul,
# so we need to keep an independent pseudo-library, as well as the OS_LIBS
# on Windows for them to propagate there.
Library('gkmedias')
if CONFIG['MOZ_WEBRTC']:
DIRS += ['webrtc']
if CONFIG['OS_TARGET'] == 'WINNT':
DEFFILE = 'symbols.def'
OS_LIBS += [
'usp10',
'ole32',

661
layout/media/symbols.def.in Normal file
View file

@ -0,0 +1,661 @@
;+# This Source Code Form is subject to the terms of the Mozilla Public
;+# License, v. 2.0. If a copy of the MPL was not distributed with this
;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
LIBRARY gkmedias.dll
EXPORTS
nestegg_destroy
nestegg_duration
nestegg_free_packet
nestegg_init
nestegg_offset_seek
nestegg_packet_count
nestegg_packet_discard_padding
nestegg_packet_data
nestegg_packet_duration
nestegg_packet_encryption
nestegg_packet_has_keyframe
nestegg_packet_iv
nestegg_packet_track
nestegg_packet_tstamp
nestegg_read_packet
nestegg_read_reset
nestegg_track_audio_params
nestegg_track_codec_data
nestegg_track_codec_data_count
nestegg_track_codec_id
nestegg_track_content_enc_key_id
nestegg_track_count
nestegg_get_cue_point
nestegg_track_seek
nestegg_track_type
nestegg_track_video_params
nestegg_tstamp_scale
nestegg_has_cues
nestegg_sniff
#ifdef MOZ_WEBM_ENCODER
writeSimpleBlock
writeHeader
writeSegmentInformation
writeVideoTrack
writeAudioTrack
Ebml_Serialize
Ebml_SerializeUnsigned
Ebml_StartSubElement
Ebml_EndSubElement
#endif
vpx_codec_control_
vpx_codec_dec_init_ver
vpx_codec_decode
vpx_codec_destroy
vpx_codec_err_to_string
vpx_codec_get_frame
vpx_codec_peek_stream_info
vpx_codec_vp8_dx
vpx_codec_vp9_dx
vpx_img_free
vpx_codec_enc_config_set
vpx_codec_enc_init_ver
vpx_codec_vp8_cx
vpx_codec_vp9_cx
vpx_img_set_rect
vpx_img_wrap
vpx_codec_get_cx_data
vpx_codec_enc_config_default
vpx_img_alloc
vpx_codec_encode
#ifdef MOZ_AV1
aom_codec_av1_dx
aom_codec_dec_init_ver
aom_codec_decode
aom_codec_destroy
aom_codec_err_to_string
aom_codec_get_frame
aom_codec_peek_stream_info
aom_img_alloc
aom_img_free
#endif
#ifdef MOZ_VORBIS
ogg_page_bos
ogg_page_granulepos
ogg_page_serialno
ogg_set_mem_functions
ogg_stream_check
ogg_stream_clear
ogg_stream_eos
ogg_stream_flush
ogg_stream_init
ogg_stream_packetin
ogg_stream_packetout
ogg_stream_pagein
ogg_stream_pageout
ogg_stream_reset
ogg_sync_buffer
ogg_sync_clear
ogg_sync_init
ogg_sync_pageseek
ogg_sync_reset
ogg_sync_wrote
vorbis_analysis
vorbis_analysis_blockout
vorbis_analysis_buffer
vorbis_analysis_init
vorbis_analysis_headerout
vorbis_analysis_wrote
vorbis_block_clear
vorbis_block_init
vorbis_comment_add_tag
vorbis_comment_clear
vorbis_comment_init
vorbis_dsp_clear
vorbis_encode_init_vbr
vorbis_info_clear
vorbis_info_init
vorbis_packet_blocksize
vorbis_synthesis
vorbis_synthesis_blockin
vorbis_synthesis_headerin
vorbis_synthesis_init
vorbis_synthesis_pcmout
vorbis_synthesis_read
vorbis_synthesis_restart
#endif
moz_speex_resampler_init
moz_speex_resampler_destroy
moz_speex_resampler_process_float
moz_speex_resampler_process_interleaved_float
moz_speex_resampler_process_interleaved_int
moz_speex_resampler_set_rate
moz_speex_resampler_get_rate
moz_speex_resampler_get_ratio
moz_speex_resampler_get_input_latency
moz_speex_resampler_get_output_latency
moz_speex_resampler_skip_zeros
moz_speex_resampler_set_skip_frac_num
moz_speex_resampler_reset_mem
cubeb_destroy
cubeb_init
cubeb_get_backend_id
cubeb_get_max_channel_count
cubeb_get_min_latency
cubeb_get_preferred_sample_rate
cubeb_stream_destroy
cubeb_stream_get_position
cubeb_stream_init
cubeb_stream_start
cubeb_stream_stop
cubeb_stream_get_latency
cubeb_stream_set_volume
cubeb_stream_set_panning
cubeb_stream_get_current_device
cubeb_stream_device_destroy
cubeb_stream_register_device_changed_callback
th_comment_clear
th_comment_init
th_decode_alloc
th_decode_free
th_decode_headerin
th_decode_packetin
th_decode_ycbcr_out
th_granule_frame
th_info_clear
th_info_init
th_packet_isheader
th_packet_iskeyframe
th_setup_free
opus_decoder_create
opus_decoder_destroy
opus_decoder_ctl
opus_decoder_get_nb_samples
opus_decode
opus_decode_float
opus_get_version_string
opus_multistream_decoder_create
opus_multistream_decoder_ctl
opus_multistream_decoder_destroy
opus_multistream_decode_float
opus_multistream_decode
opus_packet_get_nb_frames
opus_packet_get_samples_per_frame
opus_encoder_create
opus_encoder_destroy
opus_encoder_ctl
opus_encode
opus_encode_float
#ifndef MOZ_NATIVE_PNG
MOZ_APNG_get_first_frame_is_hidden
MOZ_APNG_get_next_frame_blend_op
MOZ_APNG_get_next_frame_delay_den
MOZ_APNG_get_next_frame_delay_num
MOZ_APNG_get_next_frame_dispose_op
MOZ_APNG_set_prog_frame_fn
MOZ_APNG_get_next_frame_height
MOZ_APNG_get_next_frame_width
MOZ_APNG_get_next_frame_x_offset
MOZ_APNG_get_next_frame_y_offset
MOZ_APNG_set_acTL
MOZ_APNG_set_first_frame_is_hidden
MOZ_APNG_set_num_plays
MOZ_APNG_write_frame_head
MOZ_APNG_write_frame_tail
MOZ_PNG_cr_info_str
MOZ_PNG_cr_read_str
MOZ_PNG_cr_write_str
MOZ_PNG_dest_read_str
MOZ_PNG_dest_write_str
MOZ_PNG_free_data
MOZ_PNG_get_channels
MOZ_PNG_get_cHRM
MOZ_PNG_get_gAMA
MOZ_PNG_get_IHDR
MOZ_PNG_get_iCCP
MOZ_PNG_get_io_ptr
MOZ_PNG_get_progressive_ptr
MOZ_PNG_get_sRGB
MOZ_PNG_get_tRNS
MOZ_PNG_get_valid
MOZ_PNG_longjmp
MOZ_PNG_process_data
MOZ_PNG_process_data_pause
MOZ_PNG_progressive_combine_row
MOZ_PNG_read_update_info
MOZ_PNG_set_cHRM
MOZ_PNG_set_crc_action
MOZ_PNG_set_gAMA
MOZ_PNG_set_gamma
MOZ_PNG_set_gray_to_rgb
MOZ_PNG_set_expand
MOZ_PNG_set_IHDR
MOZ_PNG_set_interlace_handling
MOZ_PNG_set_longjmp_fn
MOZ_PNG_set_progressive_read_fn
MOZ_PNG_set_scale_16
MOZ_PNG_set_write_fn
MOZ_PNG_write_end
MOZ_PNG_write_info
MOZ_PNG_write_row
#endif
png_set_option
png_error
#ifndef MOZ_NATIVE_JPEG
jpeg_calc_output_dimensions
jpeg_consume_input
jpeg_CreateCompress
jpeg_CreateDecompress
jpeg_destroy_compress
jpeg_destroy_decompress
jpeg_finish_compress
jpeg_finish_decompress
jpeg_finish_output
jpeg_has_multiple_scans
jpeg_input_complete
jpeg_read_header
jpeg_read_scanlines
jpeg_resync_to_restart
jpeg_save_markers
jpeg_set_defaults
jpeg_set_quality
jpeg_start_compress
jpeg_start_decompress
jpeg_start_output
jpeg_std_error
jpeg_write_scanlines
jpeg_write_raw_data
jpeg_stdio_dest
jpeg_abort
jpeg_abort_decompress
jpeg_read_raw_data
#endif
WebPDemuxDelete
WebPDemuxGetChunk
WebPDemuxGetFrame
WebPDemuxGetI
WebPDemuxInternal
WebPDemuxNextFrame
WebPDemuxReleaseChunkIterator
WebPDemuxReleaseIterator
WebPFreeDecBuffer
WebPIDecGetRGB
WebPIDelete
WebPINewDecoder
WebPIUpdate
WebPInitDecBufferInternal
qcms_enable_iccv4
qcms_data_from_unicode_path
qcms_data_from_path
qcms_profile_create_rgb_with_gamma
qcms_profile_from_memory
qcms_profile_from_path
qcms_profile_from_unicode_path
qcms_profile_get_color_space
qcms_profile_get_rendering_intent
qcms_profile_is_bogus
qcms_profile_precache_output_transform
qcms_profile_release
qcms_profile_sRGB
qcms_transform_create
qcms_transform_data
qcms_transform_release
MOZ_XMLCheckQName
MOZ_XMLIsLetter
MOZ_XMLIsNCNameChar
MOZ_XMLTranslateEntity
MOZ_XML_ExternalEntityParserCreate
MOZ_XML_GetBase
MOZ_XML_GetCurrentByteIndex
MOZ_XML_GetCurrentColumnNumber
MOZ_XML_GetCurrentLineNumber
MOZ_XML_GetErrorCode
MOZ_XML_GetIdAttributeIndex
MOZ_XML_GetMismatchedTag
MOZ_XML_GetSpecifiedAttributeCount
MOZ_XML_Parse
MOZ_XML_ParserCreate_MM
MOZ_XML_ParserFree
MOZ_XML_ResumeParser
MOZ_XML_SetBase
MOZ_XML_SetCdataSectionHandler
MOZ_XML_SetCharacterDataHandler
MOZ_XML_SetCommentHandler
MOZ_XML_SetDefaultHandlerExpand
MOZ_XML_SetDoctypeDeclHandler
MOZ_XML_SetElementHandler
MOZ_XML_SetExternalEntityRefHandler
MOZ_XML_SetExternalEntityRefHandlerArg
MOZ_XML_SetNamespaceDeclHandler
MOZ_XML_SetNotationDeclHandler
MOZ_XML_SetParamEntityParsing
MOZ_XML_SetProcessingInstructionHandler
MOZ_XML_SetReturnNSTriplet
MOZ_XML_SetUnparsedEntityDeclHandler
MOZ_XML_SetUserData
MOZ_XML_SetXmlDeclHandler
MOZ_XML_StopParser
#ifdef MOZ_TREE_CAIRO
_moz_cairo_append_path
_moz_cairo_arc
_moz_cairo_arc_negative
_moz_cairo_clip
_moz_cairo_clip_extents
_moz_cairo_clip_preserve
_moz_cairo_close_path
_moz_cairo_copy_clip_rectangle_list
_moz_cairo_copy_path
_moz_cairo_copy_path_flat
_moz_cairo_create
_moz_cairo_curve_to
_moz_cairo_d2d_create_device
_moz_cairo_d2d_create_device_from_d3d10device
_moz_cairo_d2d_device_get_device
_moz_cairo_d2d_get_dc
_moz_cairo_d2d_get_image_surface_cache_usage
_moz_cairo_d2d_get_surface_vram_usage
_moz_cairo_d2d_present_backbuffer
_moz_cairo_d2d_release_dc
_moz_cairo_d2d_scroll
_moz_cairo_d2d_surface_create
_moz_cairo_d2d_surface_create_for_handle
_moz_cairo_d2d_surface_create_for_hwnd
_moz_cairo_d2d_surface_create_for_texture
_moz_cairo_d2d_surface_get_height
_moz_cairo_d2d_surface_get_texture
_moz_cairo_d2d_surface_get_width
_moz_cairo_debug_reset_static_data
_moz_cairo_destroy
_moz_cairo_device_to_user
_moz_cairo_device_to_user_distance
_moz_cairo_dwrite_font_face_create_for_dwrite_fontface
_moz_cairo_dwrite_get_cleartype_rendering_mode
_moz_cairo_dwrite_scaled_font_allow_manual_show_glyphs
_moz_cairo_dwrite_scaled_font_get_force_GDI_classic
_moz_cairo_dwrite_scaled_font_set_force_GDI_classic
_moz_cairo_dwrite_set_cleartype_params
_moz_cairo_fill
_moz_cairo_fill_extents
_moz_cairo_fill_preserve
_moz_cairo_font_face_destroy
_moz_cairo_font_options_create
_moz_cairo_font_options_destroy
_moz_cairo_font_options_get_antialias
_moz_cairo_font_options_get_hint_metrics
_moz_cairo_font_options_set_antialias
_moz_cairo_format_stride_for_width
_moz_cairo_get_antialias
_moz_cairo_get_current_point
_moz_cairo_get_dash
_moz_cairo_get_dash_count
_moz_cairo_get_fill_rule
_moz_cairo_get_font_matrix
_moz_cairo_get_font_options
_moz_cairo_get_group_target
_moz_cairo_get_line_cap
_moz_cairo_get_line_join
_moz_cairo_get_line_width
_moz_cairo_get_matrix
_moz_cairo_get_miter_limit
_moz_cairo_get_operator
_moz_cairo_get_scaled_font
_moz_cairo_get_source
_moz_cairo_get_target
_moz_cairo_glyph_extents
_moz_cairo_glyph_path
_moz_cairo_identity_matrix
_moz_cairo_image_surface_create
_moz_cairo_image_surface_create_for_data
_moz_cairo_image_surface_get_data
_moz_cairo_image_surface_get_format
_moz_cairo_image_surface_get_height
_moz_cairo_image_surface_get_stride
_moz_cairo_image_surface_get_width
_moz_cairo_in_fill
_moz_cairo_in_stroke
_moz_cairo_line_to
_moz_cairo_mask
_moz_cairo_mask_surface
_moz_cairo_matrix_init
_moz_cairo_matrix_init_identity
_moz_cairo_matrix_init_scale
_moz_cairo_matrix_init_translate
_moz_cairo_matrix_invert
_moz_cairo_matrix_multiply
_moz_cairo_matrix_rotate
_moz_cairo_matrix_scale
_moz_cairo_matrix_transform_distance
_moz_cairo_matrix_transform_point
_moz_cairo_matrix_translate
_moz_cairo_move_to
_moz_cairo_new_path
_moz_cairo_new_sub_path
_moz_cairo_null_surface_create
_moz_cairo_paint
_moz_cairo_paint_with_alpha
_moz_cairo_path_destroy
_moz_cairo_path_extents
_moz_cairo_pattern_add_color_stop_rgba
_moz_cairo_pattern_create_for_surface
_moz_cairo_pattern_create_linear
_moz_cairo_pattern_create_radial
_moz_cairo_pattern_create_rgba
_moz_cairo_pattern_destroy
_moz_cairo_pattern_get_color_stop_count
_moz_cairo_pattern_get_color_stop_rgba
_moz_cairo_pattern_get_extend
_moz_cairo_pattern_get_filter
_moz_cairo_pattern_get_linear_points
_moz_cairo_pattern_get_matrix
_moz_cairo_pattern_get_radial_circles
_moz_cairo_pattern_get_rgba
_moz_cairo_pattern_get_surface
_moz_cairo_pattern_get_type
_moz_cairo_pattern_reference
_moz_cairo_pattern_set_extend
_moz_cairo_pattern_set_filter
_moz_cairo_pattern_set_matrix
_moz_cairo_pattern_status
_moz_cairo_pdf_surface_create_for_stream
_moz_cairo_pop_group
_moz_cairo_pop_group_to_source
_moz_cairo_push_group
_moz_cairo_push_group_with_content
_moz_cairo_rectangle
_moz_cairo_rectangle_list_destroy
_moz_cairo_reference
_moz_cairo_release_device
_moz_cairo_reset_clip
_moz_cairo_restore
_moz_cairo_rotate
_moz_cairo_save
_moz_cairo_scale
_moz_cairo_scaled_font_create
_moz_cairo_scaled_font_destroy
_moz_cairo_scaled_font_get_font_matrix
_moz_cairo_scaled_font_get_font_options
_moz_cairo_scaled_font_get_type
_moz_cairo_scaled_font_glyph_extents
_moz_cairo_scaled_font_reference
_moz_cairo_scaled_font_status
_moz_cairo_set_antialias
_moz_cairo_set_dash
_moz_cairo_set_fill_rule
_moz_cairo_set_font_face
_moz_cairo_set_font_options
_moz_cairo_set_font_size
_moz_cairo_set_line_cap
_moz_cairo_set_line_join
_moz_cairo_set_line_width
_moz_cairo_set_matrix
_moz_cairo_set_miter_limit
_moz_cairo_set_operator
_moz_cairo_set_scaled_font
_moz_cairo_set_source
_moz_cairo_set_source_rgba
_moz_cairo_set_source_surface
_moz_cairo_show_glyphs
_moz_cairo_status
_moz_cairo_status_to_string
_moz_cairo_stroke
_moz_cairo_stroke_extents
_moz_cairo_stroke_preserve
_moz_cairo_surface_attach_snapshot
_moz_cairo_surface_create_similar
_moz_cairo_surface_destroy
_moz_cairo_surface_finish
_moz_cairo_surface_flush
_moz_cairo_surface_get_content
_moz_cairo_surface_get_device_offset
_moz_cairo_surface_get_reference_count
_moz_cairo_surface_get_subpixel_antialiasing
_moz_cairo_surface_get_type
_moz_cairo_surface_get_user_data
_moz_cairo_surface_mark_dirty
_moz_cairo_surface_mark_dirty_rectangle
_moz_cairo_surface_reference
_moz_cairo_surface_set_device_offset
_moz_cairo_surface_set_fallback_resolution
_moz_cairo_surface_set_subpixel_antialiasing
_moz_cairo_surface_set_user_data
_moz_cairo_surface_show_page
_moz_cairo_surface_status
_moz_cairo_tee_surface_add
_moz_cairo_tee_surface_create
_moz_cairo_tee_surface_index
_moz_cairo_transform
_moz_cairo_translate
_moz_cairo_user_to_device
_moz_cairo_user_to_device_distance
_moz_cairo_win32_font_face_create_for_logfontw
_moz_cairo_win32_font_face_create_for_logfontw_hfont
_moz_cairo_win32_get_dc_with_clip
_moz_cairo_win32_get_system_text_quality
#ifdef NS_PRINTING
_moz_cairo_win32_printing_surface_create
#endif
_moz_cairo_win32_scaled_font_select_font
_moz_cairo_win32_surface_create
_moz_cairo_win32_surface_create_with_alpha
_moz_cairo_win32_surface_create_with_d3dsurface9
_moz_cairo_win32_surface_create_with_ddb
_moz_cairo_win32_surface_create_with_dib
_moz_cairo_win32_surface_get_dc
_moz_cairo_win32_surface_get_height
_moz_cairo_win32_surface_get_image
_moz_cairo_win32_surface_get_width
_moz_cairo_win32_surface_set_can_convert_to_dib
#ifdef MOZ_TREE_PIXMAN
_moz_pixman_image_composite32
_moz_pixman_image_create_bits
_moz_pixman_image_set_filter
_moz_pixman_image_set_transform
_moz_pixman_image_unref
_moz_pixman_transform_from_pixman_f_transform
_moz_pixman_transform_invert
_moz_pixman_region32_reset
_moz_pixman_region32_init
_moz_pixman_region32_init_rect
_moz_pixman_region32_init_rects
_moz_pixman_region32_init_with_extents
_moz_pixman_region32_fini
_moz_pixman_region32_translate
_moz_pixman_region32_copy
_moz_pixman_region32_intersect
_moz_pixman_region32_intersect_rect
_moz_pixman_region32_union
_moz_pixman_region32_union_rect
_moz_pixman_region32_subtract
_moz_pixman_region32_inverse
_moz_pixman_region32_contains_point
_moz_pixman_region32_contains_rectangle
_moz_pixman_region32_not_empty
_moz_pixman_region32_extents
_moz_pixman_region32_n_rects
_moz_pixman_region32_rectangles
_moz_pixman_region32_equal
_moz_pixman_region32_selfcheck
_moz_pixman_region32_reset
_moz_pixman_region32_clear
#endif
#endif
hb_blob_create
hb_blob_destroy
hb_blob_get_data
hb_blob_get_empty
hb_blob_get_length
hb_blob_reference
hb_buffer_add_utf16
hb_buffer_create
hb_buffer_destroy
hb_buffer_get_glyph_infos
hb_buffer_get_glyph_positions
hb_buffer_reverse
hb_buffer_set_cluster_level
hb_buffer_set_direction
hb_buffer_set_language
hb_buffer_set_script
hb_buffer_set_unicode_funcs
hb_face_create_for_tables
hb_face_destroy
hb_face_reference
hb_font_create
hb_font_destroy
hb_font_funcs_create
hb_font_funcs_set_glyph_contour_point_func
hb_font_funcs_set_glyph_extents_func
hb_font_funcs_set_glyph_func
hb_font_funcs_set_glyph_h_advance_func
hb_font_funcs_set_glyph_h_kerning_func
hb_font_funcs_set_glyph_h_origin_func
hb_font_funcs_set_glyph_v_origin_func
hb_font_funcs_set_glyph_v_advance_func
hb_font_funcs_set_nominal_glyph_func
hb_font_funcs_set_variation_glyph_func
hb_font_set_funcs
hb_font_set_ppem
hb_font_set_scale
hb_language_from_string
hb_ot_layout_collect_lookups
hb_ot_layout_feature_get_lookups
hb_ot_layout_has_positioning
hb_ot_layout_has_substitution
hb_ot_layout_language_find_feature
hb_ot_layout_language_get_feature_indexes
hb_ot_layout_language_get_feature_tags
hb_ot_layout_language_get_required_feature_index
hb_ot_layout_lookup_collect_glyphs
hb_ot_layout_script_get_language_tags
hb_ot_layout_table_choose_script
hb_ot_layout_table_find_script
hb_ot_layout_table_get_script_tags
hb_ot_math_get_constant
hb_ot_math_get_glyph_assembly
hb_ot_math_get_glyph_italics_correction
hb_ot_math_get_glyph_variants
hb_ot_math_has_data
hb_ot_tag_to_language
hb_ot_tag_to_script
hb_ot_tags_from_script
hb_set_add
hb_set_clear
hb_set_create
hb_set_destroy
hb_set_get_population
hb_set_has
hb_set_intersect
hb_set_is_empty
hb_set_next
hb_shape
hb_unicode_funcs_create
hb_unicode_funcs_get_empty
hb_unicode_funcs_set_combining_class_func
hb_unicode_funcs_set_compose_func
hb_unicode_funcs_set_decompose_func
hb_unicode_funcs_set_eastasian_width_func
hb_unicode_funcs_set_general_category_func
hb_unicode_funcs_set_mirroring_func
hb_unicode_funcs_set_script_func
BrotliDecoderCreateInstance
BrotliDecoderDecompress
BrotliDecoderDecompressStream
BrotliDecoderDestroyInstance
BrotliDecoderIsFinished
BrotliDecoderStateCleanup
BrotliDecoderStateInit

View file

@ -88,6 +88,9 @@ else:
LOCAL_INCLUDES += [ '/media/libaom/config/generic/' ]
EXPORTS.aom += [ 'config/generic/config/aom_config.h' ]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -81,6 +81,9 @@ if CONFIG['OS_TARGET'] == 'Android':
]
DEFINES['USE_AUDIOTRACK'] = True
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']

View file

@ -261,6 +261,9 @@ if CONFIG['CPU_ARCH'] == 'x86_64':
ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -20,6 +20,9 @@ SOURCES += [
'WebMElement.c',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
# We allow warnings for third-party code that can be updated from upstream.

View file

@ -7,6 +7,9 @@ UNIFIED_SOURCES += [
'nestegg.c',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
# We allow warnings for third-party code that can be updated from upstream.

View file

@ -22,4 +22,7 @@ UNIFIED_SOURCES += [
'src/ogg_framing.c',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'

View file

@ -23,8 +23,10 @@ DEFINES['OPUS_VERSION'] = '2654707e86cc94413998976d179b2ab4a2aa3114'
DEFINES['USE_ALLOCA'] = True
DEFINES['ENABLE_HARDENING'] = True
# Don't export symbols
DEFINES['OPUS_EXPORT'] = ''
# We only need to export symbols if we're built into libgkmedias
# instead of libxul.
if not CONFIG['GKMEDIAS_SHARED_LIBRARY']:
DEFINES['OPUS_EXPORT'] = ''
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_AS']:
DEFINES['OPUS_ARM_ASM'] = True

View file

@ -46,6 +46,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
Library('mozpng')
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
# We allow warnings for third-party code that can be updated from upstream.

View file

@ -22,7 +22,11 @@ FINAL_LIBRARY = 'gkmedias'
# We don't compile the full speex codec, only the resampler.
DEFINES['OUTSIDE_SPEEX'] = True
# Visibility is handled through VISIBILITY_FLAGS and
# layout/media/symbols.def.in.
DEFINES['EXPORT'] = ''
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
if CONFIG['MOZ_SAMPLE_TYPE_S16']:
DEFINES['FIXED_POINT'] = True

View file

@ -17,6 +17,9 @@ ALLOW_COMPILER_WARNINGS = True
FINAL_LIBRARY = 'gkmedias'
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# The encoder is currently not included.
DEFINES['THEORA_DISABLE_ENCODE'] = True

View file

@ -47,6 +47,9 @@ if CONFIG['OS_ARCH'] == 'AIX':
if CONFIG['OS_ARCH'] == 'SunOS':
DEFINES['HAVE_ALLOCA_H'] = True
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -62,6 +62,9 @@ if 'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm' not in arm_asm_files:
'vp8/encoder/boolhuff.c',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

View file

@ -32,4 +32,7 @@ include('../common.build')
# nr_socket_short_term_violation_time.
SOURCES += mtransport_cppsrcs
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'xul'

View file

@ -25,6 +25,9 @@ SOURCES += [
'dec/state.c',
]
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True
@ -36,6 +39,8 @@ CFLAGS += ['-DBROTLI_BUILD_PORTABLE']
Library('brotli')
FINAL_LIBRARY = 'gkmedias'
HostProgram('brotli')
HOST_SOURCES += SOURCES

View file

@ -4566,8 +4566,16 @@ dnl =
dnl ========================================================
MOZ_ARG_HEADER(Static build options)
if test "$OS_ARCH" = "WINNT"; then
GKMEDIAS_SHARED_LIBRARY=1
fi
if test -n "$GKMEDIAS_SHARED_LIBRARY"; then
AC_DEFINE(GKMEDIAS_SHARED_LIBRARY)
fi
AC_SUBST(GKMEDIAS_SHARED_LIBRARY)
if test -z "$MOZ_SYSTEM_ZLIB"; then
if test -n "$JS_SHARED_LIBRARY"; then
if test -n "$JS_SHARED_LIBRARY" -o "$GKMEDIAS_SHARED_LIBRARY"; then
ZLIB_IN_MOZGLUE=1
AC_DEFINE(ZLIB_IN_MOZGLUE)
fi