Commit graph

2 commits

Author SHA1 Message Date
Mirko Bonadei
028248cbd7 Add rtc_enable_symbol_export to incrementally create a WebRTC component.
In order to implement a WebRTC component in Chromium, WebRTC needs to
export some symbols.

If RTC_EXPORT relies on COMPONENT_BUILD to mark symbols as exported
or imported, it will not be possible to incrementally add RTC_EXPORT
because the Chromium build will break (two Chromium components that
export a symbol or no component that exports it).

By using `rtc_enable_symbol_export` (which makes GN define
WEBRTC_ENABLE_SYMBOL_EXPORT), WebRTC will be able to incrementally mark
symbols with RTC_EXPORT and flip the value of `rtc_enable_symbol_export`
in the Chromium build when everything will be ready.

Bug: webrtc:9419
Change-Id: I57ab63c53545c500eaaefd75c112b4674aa7cf19
Reviewed-on: https://webrtc-review.googlesource.com/c/104980
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25087}
2018-10-10 11:04:34 +00:00
Mirko Bonadei
32ce18c062 Reland "Add RTC_EXPORT macro to export WebRTC symbols."
This is a reland of 55daf1aef6.

In order to avoid problems on case insensitive file systems this CL
moves rtc_export.h to rtc_base/system (avoiding problems with build/).

Diff: https://webrtc-review.googlesource.com/c/src/+/100804/1..2.

Original change's description:
> Add RTC_EXPORT macro to export WebRTC symbols.
>
> This CL introduces the utility macro RTC_EXPORT which will let WebRTC
> developers decide which symbols are supposed to be exported/imported
> and which ones are private.
>
> RTC_EXPORT will only export/import symbols in a component build, more
> info: https://cs.chromium.org/chromium/src/docs/component_build.md.
> During a component build, the macro COMPONENT_BUILD will be globally
> defined in a consistent fashion so it is safe to rely on it to
> understand how to expand RTC_EXPORT.
> In a non component build, RTC_EXPORT will expand to nothing.
>
> Bug: webrtc:9419
> Change-Id: Ic58162783be7f5883136ade27f324d6d34fdf932
> Reviewed-on: https://webrtc-review.googlesource.com/97960
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Yves Gerey <yvesg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24757}

Bug: webrtc:9419
Change-Id: Icfedea5fc3416ea1af2185de443fa879fb2dee8b
Reviewed-on: https://webrtc-review.googlesource.com/100804
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24766}
2018-09-18 12:07:58 +00:00