diff --git a/platform/glfw/CMakeLists.txt b/platform/glfw/CMakeLists.txt index 24cc00654..0b041888c 100644 --- a/platform/glfw/CMakeLists.txt +++ b/platform/glfw/CMakeLists.txt @@ -31,6 +31,13 @@ set_property( PROPERTY COMPILE_DEFINITIONS MLN_ASSETS_PATH=\"${PROJECT_SOURCE_DIR}/platform/glfw/assets/\" ) +if(APPLE) + target_sources( + mbgl-glfw + PRIVATE ${PROJECT_SOURCE_DIR}/platform/glfw/glfw_apple_init.mm + ) +endif() + if(MLN_WITH_OPENGL) find_package(OpenGL REQUIRED) target_sources( diff --git a/platform/glfw/glfw_apple_init.mm b/platform/glfw/glfw_apple_init.mm new file mode 100644 index 000000000..92bd639db --- /dev/null +++ b/platform/glfw/glfw_apple_init.mm @@ -0,0 +1,11 @@ +#import + +// Called early in GLFW initialization so that the local glyph rasterizer +// can find a suitable CJK font via NSUserDefaults. +__attribute__((constructor)) +static void setDefaultIdeographicFont() { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if (![defaults objectForKey:@"MLNIdeographicFontFamilyName"]) { + [defaults setObject:@[@"PingFang TC"] forKey:@"MLNIdeographicFontFamilyName"]; + } +}