| # Copyright 2022 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| import("//build_overrides/pigweed.gni") |
| |
| import("$dir_pw_build/target_types.gni") |
| import("glfw.gni") |
| import("imgui.gni") |
| |
| if (dir_pw_third_party_imgui != "") { |
| config("imgui") { |
| include_dirs = [ |
| "$dir_pw_third_party_imgui", |
| "$dir_pw_third_party_imgui/backends", |
| "$dir_pw_third_party_imgui/examples/libs/glfw", |
| ] |
| |
| if (host_os == "linux") { |
| libs = [ |
| # pkg-config --static --libs gl |
| "GL", |
| |
| # pkg-config --static --libs glfw3 |
| "glfw", |
| "rt", |
| "m", |
| "dl", |
| ] |
| include_dirs += [ "$dir_pw_third_party_glfw/include" ] |
| lib_dirs = [ |
| "/usr/lib/x86_64-linux-gnu", |
| "/usr/lib", |
| ] |
| } else if (host_os == "mac") { |
| # TODO(tonymd) Test Mac build |
| ldflags = [ |
| "-framework", |
| "OpenGL", |
| "-framework", |
| "Cocoa", |
| "-framework", |
| "IOKit", |
| "-framework", |
| "CoreVideo", |
| ] |
| libs = [ "glfw3" ] |
| lib_dirs = [ |
| "$dir_pw_third_party_glfw/lib-universal", |
| "/usr/local/lib", |
| ] |
| include_dirs += [ |
| "$dir_pw_third_party_glfw/include", |
| "/usr/local/include", |
| ] |
| } else if (host_os == "win") { |
| libs = [ |
| "glfw3", |
| "gdi32", |
| "opengl32", |
| "imm32", |
| ] |
| include_dirs += [ "$dir_pw_third_party_glfw/include" ] |
| lib_dirs = [ "$dir_pw_third_party_glfw/lib-mingw-w64" ] |
| } |
| } |
| |
| _imgui_sources = [ |
| "$dir_pw_third_party_imgui/backends/imgui_impl_glfw.cpp", |
| "$dir_pw_third_party_imgui/backends/imgui_impl_opengl3.cpp", |
| "$dir_pw_third_party_imgui/imgui.cpp", |
| "$dir_pw_third_party_imgui/imgui_demo.cpp", |
| "$dir_pw_third_party_imgui/imgui_draw.cpp", |
| "$dir_pw_third_party_imgui/imgui_tables.cpp", |
| "$dir_pw_third_party_imgui/imgui_widgets.cpp", |
| ] |
| |
| pw_source_set("pw_display_host_imgui") { |
| public_configs = [ ":imgui" ] |
| deps = [ "$dir_pw_display:pw_display.facade" ] |
| sources = [ "display.cc" ] + _imgui_sources |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| } |