chromium 編譯原始碼裡面的單一模組 測試用例
阿新 • • 發佈:2021-08-11
當檢視chromium原始碼,發現在viz下有個demo可執行原始碼。位於目錄:
src\components\viz\demo
開啟此目錄下的 BUILD.gn ,找到 gn 的target:
executable("viz_demo")
輸入如下命令編譯即可:
e:\dev\chromium\src>ninja -C out/default viz_demo
執行:
e:\dev\chromium\src>out\Default\viz_demo.exe
附上BUILD.gn:
# Copyright 2019 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/ui.gni") static_library("client") { output_name = "demo_client" sources = [ "client/demo_client.cc", "client/demo_client.h", ] deps = [ "//components/viz/common", "//mojo/public/cpp/bindings", "//services/viz/public/mojom", ] } static_library("host") { output_name = "demo_host" sources = [ "host/demo_host.cc", "host/demo_host.h", ] deps = [ ":client", "//components/viz/common", "//components/viz/host", "//mojo/public/cpp/system", "//services/viz/privileged/mojom", ] } static_library("service") { output_name = "demo_service" sources = [ "service/demo_service.cc", "service/demo_service.h", ] deps = [ "//components/viz/common", "//components/viz/service/main", "//mojo/public/cpp/system", "//services/viz/privileged/mojom", ] } executable("viz_demo") { sources = [ "demo_main.cc" ] deps = [ "//base", "//base:base_static", "//base:i18n", "//build/win:default_exe_manifest", "//components/viz/demo:host", "//components/viz/demo:service", "//components/viz/service", "//components/viz/service/main", "//mojo/core/embedder", "//skia", "//ui/events", "//ui/events/platform", "//ui/platform_window", ] if (use_x11) { deps += [ "//ui/events/platform/x11", "//ui/platform_window/x11", ] } if (is_win) { deps += [ "//ui/platform_window/win" ] } }