mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
* Add OpenHarmony support for allocator / profile Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * gfx: Build harfbuzz from source on OHOS Updates `freetype-sys` to v0.20.1, which includes a build fix for OpenHarmony. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * gfx: Don't depend on fontconfig on OpenHarmony Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * gfx: Add ohos font fallback Hardcode HarmonyOS_Sans_SC_Regular for Chinese Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * libservo: OHOS useragent, and explicitly opt out of sandboxing Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * libservo: Disable get_native_media_display_and_gl_context on ohos Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
59 lines
1.6 KiB
Rust
59 lines
1.6 KiB
Rust
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
#[cfg(any(target_os = "linux", target_os = "android"))]
|
|
pub use crate::platform::freetype::{font, font_list, library_handle};
|
|
#[cfg(target_os = "macos")]
|
|
pub use crate::platform::macos::{core_text_font_cache, font, font_list};
|
|
#[cfg(target_os = "windows")]
|
|
pub use crate::platform::windows::{font, font_list};
|
|
|
|
#[cfg(any(target_os = "linux", target_os = "android"))]
|
|
mod freetype {
|
|
use std::ffi::CStr;
|
|
use std::str;
|
|
|
|
use libc::c_char;
|
|
|
|
/// Creates a String from the given null-terminated buffer.
|
|
/// Panics if the buffer does not contain UTF-8.
|
|
unsafe fn c_str_to_string(s: *const c_char) -> String {
|
|
str::from_utf8(CStr::from_ptr(s).to_bytes())
|
|
.unwrap()
|
|
.to_owned()
|
|
}
|
|
|
|
pub mod font;
|
|
|
|
#[cfg(all(target_os = "linux", not(target_env = "ohos")))]
|
|
pub mod font_list;
|
|
#[cfg(target_os = "android")]
|
|
mod android {
|
|
pub mod font_list;
|
|
mod xml;
|
|
}
|
|
#[cfg(target_os = "android")]
|
|
pub use self::android::font_list;
|
|
#[cfg(target_env = "ohos")]
|
|
mod ohos {
|
|
pub mod font_list;
|
|
}
|
|
#[cfg(target_env = "ohos")]
|
|
pub use self::ohos::font_list;
|
|
|
|
pub mod library_handle;
|
|
}
|
|
|
|
#[cfg(target_os = "macos")]
|
|
mod macos {
|
|
pub mod core_text_font_cache;
|
|
pub mod font;
|
|
pub mod font_list;
|
|
}
|
|
|
|
#[cfg(target_os = "windows")]
|
|
mod windows {
|
|
pub mod font;
|
|
pub mod font_list;
|
|
}
|