chromium - cpp101 - hello-chromium

前言

chromium中有一个入门文档,叫cpp101
http://www.chromium.org/developers/cpp-in-chromium-101-codelab

已经放假了:)
将这个入门实验做一遍, 可以从编译选项到c++概念在chromium的用法搞清楚。然后再继续膜拜chromium工程本身。

实验

BUILD.gn

修改Z:\chromium\src\base\BUILD.gn, 在此配置文件尾部加入cpp101的工程依赖.
这个实验依赖的库是base

# TODO(dyaroshev): remove regression fuzzer, after we run it for a few days
#                  and are confident that the transition was ok.
fuzzer_test("utf_string_conversions_regression_fuzzer") {
  sources = [
    "strings/old_utf_string_conversions.cc",
    "strings/old_utf_string_conversions.h",
    "strings/utf_string_conversions_regression_fuzzer.cc",
  ]
  deps = [
    ":base",
  ]

  libfuzzer_options = [ "max_len=32" ]
}

executable("hello_chromium") {
  sources = [
    "cpp101/hello_chromium.cpp",
  ]
  deps = [
    ":base",
  ]
}

args.gn

为了使命令行编译时,少指定一些参数,可以将参数放在输出目录的args.gn中。

# @file Z:\chromium\src\out\cpp101\args.gn
# @brief build chromium cpp101
# @ref  https://www.chromium.org/developers/gn-build-configuration
#       https://blog.csdn.net/Vincent95/article/details/78477822
# @note 
# cd /d Z:\chromium\src\
# gn --ide=vs args out\cpp101
# autoninja -C out\cpp101 hello_chromium
# cd /d Z:\chromium\src\out\cpp101
# hello_chromium.exe
# 
# args.gn begin
#
target_os="win"
target_cpu = "x86"
is_component_build = true

dcheck_always_on = true
enable_nacl = false

use_goma = false
symbol_level = 2
is_debug = true
is_win_fastlink = false
remove_webcore_debug_symbols = false
#
# args.gn end
#

hello_chromium.cpp

随便写个测试代码,用到base库中的特性就行。

// @file Z:\chromium\src\base\cpp101\hello_chromium.cpp
// @brief 
// 	Example GN solution for C++ 101 Exercise 0 (Hello world).

#include <stdlib.h>
#include <stdio.h>

#include "base/logging.h"

int main(int argc, char** argv)
{
	printf("hello chromium\n");
	LOG(INFO) << "hello chromium";
	
	return EXIT_SUCCESS;
}


编译运行工程

cd /d Z:\chromium\src\
gn --ide=vs args out\cpp101
autoninja -C out\cpp101 hello_chromium

运行工程

cd /d Z:\chromium\src\out\cpp101
hello_chromium.exe

看工程的运行效果

在exe同级目录中有log, 我将日志名字改成debug.log了.
查看debug.log的内容

[0117/111053.297:INFO:hello_chromium.cpp(18)] hello chromium

备注

脱离chromium主工程做实验的意义:

  • 可以写自己的独立工程,可以直接用chromium基础库(性能,跨平台都有了)。只用考虑逻辑就行。

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/86521093