1# Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. 2 3import("//build/config/ohos/rules.gni") 4import("//build/ohos.gni") 5import("//third_party/glfw/glfw_ace_config.gni") 6 7config("glfw_inner_headers") { 8 include_dirs = [ "include" ] 9} 10 11config("glfw_config_mac") { 12 cflags = [ "-Wno-sign-compare" ] 13} 14 15template("glfw") { 16 forward_variables_from(invoker, "*") 17 18 ohos_static_library(target_name) { 19 defines += invoker.defines 20 include_dirs = [ "src" ] 21 public = [ 22 "include/GLFW/glfw3.h", 23 "include/GLFW/glfw3native.h", 24 ] 25 26 sources = [ 27 "src/context.c", 28 "src/init.c", 29 "src/input.c", 30 "src/monitor.c", 31 "src/vulkan.c", 32 "src/window.c", 33 ] 34 35 public_configs = [ ":glfw_inner_headers" ] 36 37 if (platform == "windows") { 38 sources += [ 39 "src/egl_context.c", 40 "src/egl_context.h", 41 "src/wgl_context.c", 42 "src/wgl_context.h", 43 "src/win32_init.c", 44 "src/win32_joystick.c", 45 "src/win32_joystick.h", 46 "src/win32_monitor.c", 47 "src/win32_platform.h", 48 "src/win32_time.c", 49 "src/win32_tls.c", 50 "src/win32_window.c", 51 ] 52 53 defines += [ "_GLFW_WIN32" ] 54 } 55 if (platform == "mac") { 56 sources += [ 57 "deps/glad.c", 58 "src/cocoa_init.m", 59 "src/cocoa_joystick.h", 60 "src/cocoa_joystick.m", 61 "src/cocoa_monitor.m", 62 "src/cocoa_platform.h", 63 "src/cocoa_time.c", 64 "src/cocoa_window.m", 65 "src/nsgl_context.h", 66 "src/nsgl_context.m", 67 "src/posix_tls.c", 68 "src/posix_tls.h", 69 ] 70 include_dirs += [ "deps" ] 71 libs = [ 72 "Cocoa.framework", 73 "IOKit.framework", 74 "CoreFoundation.framework", 75 "CoreVideo.framework", 76 ] 77 cflags = [ 78 "-Wno-deprecated-declarations", 79 "-Wno-objc-multiple-method-names", 80 ] 81 public_configs += [ ":glfw_config_mac" ] 82 defines += [ "_GLFW_COCOA" ] 83 } 84 } 85} 86 87glfw("glfw_windows") { 88 defines = ace_windows_defines 89 platform = "windows" 90} 91 92glfw("glfw_mac") { 93 defines = ace_mac_defines 94 platform = "mac" 95} 96