• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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