Lines Matching +full:bare +full:- +full:cross +full:- +full:build
14 [depot_tools](https://www.chromium.org/developers/how-tos/depottools) repo.
24 `drover`. However, some `git-cl` functions *do* work, like `git cl try`, `git cl
42 code, all third-party dependencies, and the toolchain needed to build things;
55 This will rebase any local commits on the remote top-of-tree, and update any
58 # Build setup
62 - Build file generator: `gn`
63 - Code formatter: `clang-format`
64 - Builder: `ninja` ([GitHub releases](https://github.com/ninja-build/ninja/releases))
65 - Compiler/Linker: `clang` (installed by default) or `gcc` (installed by you)
67 All of these--except `gcc` as noted above--are automatically downloaded/updated
73 `clang-format` is used for maintaining consistent coding style, but it is not a
75 The presubmit script will sanity-check that it has been run on all new/changed
80 On Linux, the build will automatically download the Clang compiler from the
87 sudo apt-get install libstdc++-8-dev
96 gn gen out/Default --args="is_gcc=true"
103 sudo apt-get install gcc-7
108 On Mac OS X, the build will use the clang provided by
112 ## Debug build
114 Setting the `gn` argument "is_debug=true" enables debug build.
117 gn gen out/Default --args="is_debug=true"
123 sudo apt-get install libstdc++6-8-dbg
139 The following commands will build a sample executable and run it.
143 gn gen out/Default # Creates the build directory and necessary ninja files
144 ninja -C out/Default demo # Builds the executable with ninja
148 The `-C` argument to `ninja` works just like it does for GNU Make: it specifies
149 the working directory for the build. So the same could be done as follows:
159 edited a `BUILD.gn` file, `ninja` will re-run `gn` for you.
162 `autoninja` instead of `ninja`, which takes the same command-line arguments.
163 This will automatically parallelize the build for your system, depending on
170 Running `ninja -C out/Default gn_all` will build all non-test targets in the
173 `gn ls --type=executable out/Default/` will list all of the executable targets
176 If you want to customize the build further, you can run `gn args out/Default` to
177 pull up an editor for build flags. `gn args --list out/Default` prints all of
178 the build flags available.
183 ninja -C out/Default unittests
189 In order to build fuzzers, you need the GN arg `use_libfuzzer=true`. It's also
190 recommended to build with `is_asan=true` to catch additional problems. Building
193 gn gen out/libfuzzer --args="use_libfuzzer=true is_asan=true is_debug=false"
194 ninja -C out/libfuzzer some_fuzz_target
199 description (e.g. `-max_len=1500`). These arguments may be automatically
206 # Continuous build and try jobs
209 to monitor the build and test health of the library. Current builders include:
211 | Name | Arch | OS | Toolchain | Build | Notes …
212 |------------------------|--------|--------------------|-----------|---------|---------------------…
213 | linux64_debug | x86-64 | Ubuntu Linux 16.04 | clang | debug | ASAN enabled …
214 | linux64_gcc_debug | x86-64 | Ubuntu Linux 18.04 | gcc-7 | debug | …
215 | linux64_tsan | x86-64 | Ubuntu Linux 16.04 | clang | release | TSAN enabled …
216 | mac_debug | x86-64 | Mac OS X/Xcode | clang | debug | …
217 | chromium_linux64_debug | x86-64 | Ubuntu Linux 16.04 | clang | debug | built within chromiu…
218 | chromium_mac_debug | x86-64 | Mac OS X/Xcode | clang | debug | built within chromiu…
219 | linux64_coverage_debug | x86-64 | Ubuntu Linux 16.04 | clang | debug | used for code covera…
222 non-chromium builders) using `git cl try`, or through Gerrit (details below).
225 experimental trybots and continuous-integration FYI bots.
232 openscreen uses [Chromium Gerrit](https://chromium-review.googlesource.com/) for
250 The first command will will auto-format the code changes. Then, the second
252 newcode review will be posted on `chromium-review.googlesource.com`.
266 instructions above to rebase your commits on top-of-tree and upload a new
274 review to avoid extra back-and-forth.
292 <!-- TODO(mfoltz): split up README.md into more manageable files. -->
295 openscreen supports cross compilation for both arm32 and arm64 platforms, by
302 tar.xz to the openscreen-sysroots bucket.
325 Code coverage can be checked using clang's source-based coverage tools. You
331 bare minimum steps are also outlined below. You will also need to download the
332 pre-built clang coverage tools, which are not downloaded by default. The
343 ([link](https://storage.googleapis.com/chromium-browser-clang-staging/)).
349 third_party/llvm-build/Release+Asserts/bin/llvm-profdata merge -sparse default.profraw -o foo.profd…
350 …ird_party/llvm-build/Release+Asserts/bin/llvm-cov show out/coverage/openscreen_unittests -instr-pr…
353 - `default.profraw` is generated by running the instrumented code, but
355 - `<out dir>` should be an empty directory for placing the generated HTML
357 - `[filter paths]` is a list of paths to which you want to limit the coverage
362 add `-runs=0` to the fuzzer arguments to make sure it only runs the existing