Roll build/ 007a74bf7..b54b4378f (346 commits) https://chromium.googlesource.com/chromium/src/build/+log/007a74bf79d5..b54b4378fdd3 $ git log 007a74bf7..b54b4378f --date=short --no-merges --format='%ad %ae %s' 2024-08-07 tasak [PA] Support PartitionAlloc-Everywhere on Windows component build. 2024-08-07 xuri [Install-build-deps] Use check_output instead of check_call 2024-08-07 neis crosier: Move metadata copying to the relevant build files 2024-08-06 zijiehe [fuchsia] copy BundledTestRunner from flutter 2024-08-06 rohitrao Moves swift_source_set.gni and swiftc.py from ios to apple. 2024-08-06 zijiehe [fuchsia] ignore experimental_python_e2e_test type in fuchsia-sdk 2024-08-06 ddorwin [fuchsia] Support API levels as strings in manifests 2024-08-06 erikchen Remove headless buildflags 2024-08-06 justincohen ios: Re-enable lld when building with Xcode 16 post clang roll. 2024-08-06 arthursonzogni spanification: enforce -unsafe-buffer-usage in ash/ 2024-08-05 noahrose Revert unsafe_buffers_paths.txt to 6ecd1fe 2024-08-05 arthursonzogni spanification: opt-out dirs failing on the CI. 2024-08-05 noahrose Revert "spanification: enforce -unsafe-buffer-usage in chrome" 2024-08-05 arthursonzogni spanification: enforce -unsafe-buffer-usage in chromeos 2024-08-05 arthursonzogni spanification: enforce -unsafe-buffer-usage in chrome 2024-08-05 aeubanks Roll clang+rust llvmorg-19-init-14561-gecea8371-3000 : llvmorg-20-init-826-gc95abe94-3 / 3cf924b934322fd7b514600a7dc84fc517515346-4 : 595316b4006932405a63862d8fe65f71a6356293-3 2024-08-04 thakis Reland^2 "base_profiler_test_support_library: Don't link libc++ and libc++abi" 2024-08-03 dpranke Revert "Reland "base_profiler_test_support_library: Don't link libc++ and libc++abi"" 2024-08-03 thakis Reland "base_profiler_test_support_library: Don't link libc++ and libc++abi" 2024-08-02 agrieve Silence a new R8 warning to unblock autoroller 2024-08-02 arthursonzogni spanification: opt out components/site_isolation 2024-08-02 agrieve 3pp: Fix packages using fetch_github_release.py 2024-08-02 thakis deqp: Re-enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES 2024-08-02 amaiorano Revert "Disable MSan use-after-dtor checks in fuzzing builds" 2024-08-02 arthursonzogni spanification: enforce -unsafe-buffer-usage in component 2024-08-02 hypan Wrap AVD start failure under the new AvdStartException 2024-08-02 jwata build: Remove remaining use_siso from build/config/ios/BUILD.gn 2024-08-02 agrieve Make 3pp scripts use JDK from repo rather than from CIPD 2024-08-02 thestig Remove Linux udev wrapper code for deprecated udev functions 2024-08-01 chromium-internal-autoroll Roll Fuchsia Internal Images from 22.20240725.102.1 to 22.20240801.103.1 2024-08-01 zhaoyangli [Android] Use a run listener for native coverage data in Java tests 2024-08-01 kawasin Reland "chromeos: ash: mlock .rodata and .text.hot sections" 2024-08-01 drubery Spanify safe_browsing 2024-08-01 thakis Reland^2 "linux/build: Enable fission for (symbol_level = 2) release builds as well" 2024-08-01 thakis win: Allow libc++ to use __int128 2024-07-31 thakis fuchsia: Re-enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES 2024-07-31 ukai siso: disable remote for rust/bindgen 2024-07-30 arthursonzogni spanification: enforce -unsafe-buffer-usage in ui/ 2024-07-30 wnwen pgo: Turn off orderfile when generating PGO 2024-07-30 ukai siso: enable remote action for rust_bindgen 2024-07-30 thestig Change install-build-deps.py Noble checks into package_exists() checks 2024-07-30 thestig Remove libudev0 support 2024-07-30 hypan emulator: Set "require_fast_boot" to True for AVD creation. 2024-07-29 justincohen ios: Disable fatal linker warnings on some iOS builds temporarily. 2024-07-29 aeubanks Turn off -Wdangling-assignment-gsl 2024-07-29 mikt [PA] Update DEPS for new include path #cleanup 2024-07-29 agrieve Android: Pass .jars rather than package names to R8 for SDK extensions 2024-07-29 justincohen ios: Disable lld when building with Xcode 16. 2024-07-29 yoichio Revert "chromeos: ash: mlock .rodata and .text.hot sections" 2024-07-29 kawasin chromeos: ash: mlock .rodata and .text.hot sections (...) 2024-06-10 ukai siso: set input_root_absolute_path=true for clang if clang_need_input_root_absolute_path=true 2024-06-09 zijiehe [Fuchsia] Wait for the ffx daemon modifications before exiting 2024-06-08 nasko Remove //content/ from exclusion list for unsafe buffers checks. 2024-06-08 bartekn [BRP] Take a step towards enforcing raw_ptr/ref in Renderer code 2024-06-07 akhuang Temporarily disable sized deallocation due to binary size increase. 2024-06-07 danakj Enable the plugin to disable calling span() ctor with a string literal 2024-06-07 agrieve install-build-deps.py: Add libexpat1:i386 2024-06-07 sesse Always define __ARM_NEON__ for Aarch64. 2024-06-07 jwata build: Use the same inputs root on remote workers for JS coverage builds 2024-06-07 ukai siso: set timeout for remote steps 2024-06-07 ukai siso: set timeout to proto/protoc_wrapper 2024-06-07 bpastene Revert "Allow Rust allocation to fail on large allocations" 2024-06-07 dcheng Disable the DWARF line number reader in sanitizer builds 2024-06-06 agrieve Android: Have @BeforeClass / @AfterClass exceptions fail tests 2024-06-06 bpastene Reland "Move a couple telemetry_gpu_integration_tests to generated_scripts" 2024-06-06 danakj Allow Rust allocation to fail on large allocations 2024-06-06 yueshe initial implementation for reporting test runner exceptions to resultdb 2024-06-06 adetaylor Exclude fuzztests from Android etc. 2024-06-06 ukai log "clang_need_input_root_absolute_path" in gn_logs.txt 2024-06-06 kuanhuang Increase mem_per_link_gb for win-arm64-rel builder 2024-06-06 thomasanderson Remove symlink touch 2024-06-06 thomasanderson Drop support for Ubuntu 18.04 Bionic 2024-06-06 chromium-internal-autoroll Roll Fuchsia Internal Images from 20.20240529.3.1 to 21.20240605.3.1 2024-06-05 akhuang Edit so that disabling -Wno-missing-template is added to cflags_cc so it's not used to for bindgen. 2024-06-05 drott [Fontations] Default compile-in Fontations 2024-06-04 akhuang Add !is_nacl to -Wmissing-template-arg-list-after-template-kw disable 2024-06-04 hnakashima Fix Java tests batching. Do not call _GroupTests() twice. 2024-06-04 ellyjones views: enable unsafe buffer checking 2024-06-04 aishwaryarj Revert "Move a couple telemetry_gpu_integration_tests to generated_scripts" 2024-06-04 akhuang Turn off -Wmissing-template-arg-list-after-template-kw for ToT builds. 2024-06-04 pnoland [Omnibox] Re-enable SearchProviderTest for Android 2024-06-04 zijiehe [exception-db] Add metric proto and its implementations 2024-06-04 bpastene Move a couple telemetry_gpu_integration_tests to generated_scripts 2024-06-04 ukai ide_query: handle use_reclient 2024-06-03 thomasanderson Fix touch file creation to update timestamps in build/symlink.py 2024-06-03 agrieve test_runner.py: Disable --concurrent-adb rather than fail for --fast-local-dev 2024-06-03 zijiehe [Fuchsia] Remove unnecessary use-vulkan flag 2024-06-03 jdapena Fix linking Rust libraries with GNU linkers 2024-06-03 ayzhao [libc++] Try using __builtin_trap() instead of IMMEDIATE_CRASH() for the libc++ hardening mode 2024-06-03 xiyuan crosier: Use `--files-from` for `cros_run_test` 2024-06-03 bpastene Add the contents of //build/cros_cache/common/ to Simple Chrome tests 2024-06-03 wnwen android: Fix lint for testonly apks 2024-06-03 davidben Align ubsan_flags and ubsan_security_flags on -fsanitize=shift 2024-06-02 ukai siso: update macossdk version 2024-06-01 thestig Reland "Remove use_gold GN variables" 2024-05-31 djmitche Enable Rust JSON parser in builds 2024-05-31 danakj Run gnrt for stdlib to add libc dependency on Windows 2024-05-31 leszeks [build] Add /Zc:__cplusplus to the Windows compiler flags. 2024-05-31 jwata build: fix deprecated rbe config handling 2024-05-29 chromium-internal-autoroll Roll Fuchsia Internal Images from 20.20240522.2.1 to 20.20240529.3.1 Created with: roll-dep build Change-Id: Id2dd850c8951b9d1fcb221b569aa8c1fd3025b14 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/5768615 Reviewed-by: Mark Foltz <[email protected]> Commit-Queue: Mark Foltz <[email protected]>
The Open Screen Library implements the Open Screen Protocol, Multicast DNS and DNS-SD, and the Chromecast protocols (discovery, application control, and media streaming).
The library consists of feature modules that share a common platform API that must be implemented and linked by the embedding application.
The major feature modules in the library can be used independently and have their own documentation:
Library dependencies are managed using gclient, from the depot_tools repo.
To get gclient, run the following command in your terminal:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
Then add the depot_tools folder to your PATH environment variable.
Note that openscreen does not use other features of depot_tools like repo or drover. However, some git-cl functions do work, like git cl try, git cl format, git cl lint, and git cl upload.
From the parent directory of where you want the openscreen checkout (e.g., ~/my_project_dir), configure gclient and check out openscreen with the following commands:
cd ~/my_project_dir gclient config https://chromium.googlesource.com/openscreen gclient sync
The first gclient command will create a default .gclient file in ~/my_project_dir that describes how to pull down the openscreen repository. The second command creates an openscreen/ subdirectory, downloads the source code, all third-party dependencies, and the toolchain needed to build things; and at their appropriate revisions.
To update your local checkout from the openscreen reference repository, just run
cd ~/my_project_dir/openscreen git pull gclient sync
This will rebase any local commits on the remote top-of-tree, and update any dependencies that have changed.
The following are the main tools are required for development/builds.
gn (installed into buildtools/)clang-format (installed into buildtools/)ninjaclangyajsvlibstdc++gccgo from https://golang.org or your Linux package manager.go install github.com/neilpa/yajsv@latestEnsure that libstdc++ 8 is installed, as clang depends on the system instance of it. On Debian flavors, you can run:
sudo apt-get install libstdc++-8-dev libstdc++6-8-dbg
You can install the XCode command-line tools only or the full version of XCode.
xcode-select --install
Setting the gn argument is_clang=false on Linux enables building using gcc instead.
mkdir out/debug-gcc gn gen out/debug-gcc --args="is_clang=false"
Note that g++ version 9 or newer must be installed. On Debian flavors you can run:
sudo apt-get install gcc-9
Setting the gn argument is_debug=true enables debug build.
gn gen out/debug --args="is_debug=true"
Running gn args opens an editor that allows to create a list of arguments passed to every invocation of gn gen. gn args --list will list all of the possible arguments you can set.
gn args out/debug
We use the Open Screen Protocol demo application as an example, however, the instructions are essentially the same for all executable targets.
mkdir out/debug gn gen out/debug # Creates the build directory and necessary ninja files ninja -C out/debug osp_demo # Builds the executable with ninja ./out/debug/osp_demo # Runs the executable
The -C argument to ninja works just like it does for GNU Make: it specifies the working directory for the build. So the same could be done as follows:
./gn gen out/debug cd out/debug ninja osp_demo ./osp_demo
After editing a file, only ninja needs to be rerun, not gn. If you have edited a BUILD.gn file, ninja will re-run gn for you.
We recommend using autoninja instead of ninja, which takes the same command-line arguments but automatically parallelizes the build for your system, depending on number of processor cores, amount of RAM, etc.
Also, while specifying build targets is possible while using ninja, typically for development it is sufficient to just build everything, especially since the Open Screen repository is still quite small. That makes the invocation to the build system simplify to:
autoninja -C out/debug
For details on running osp_demo, see its README.md.
Running ninja -C out/debug gn_all will build all non-test targets in the repository.
gn ls --type=executable out/debug will list all of the executable targets that can be built.
If you want to customize the build further, you can run gn args out/debug to pull up an editor for build flags. gn args --list out/debug prints all of the build flags available.
ninja -C out/debug openscreen_unittests ./out/debug/openscreen_unittests
Open Screen library code should follow the Open Screen Library Style Guide.
This library uses Chromium Gerrit for patch management and code review (for better or worse). You will need to register for an account at chromium-review.googlesource.com to upload patches for review.
The following sections contain some tips about dealing with Gerrit for code reviews, specifically when pushing patches for review, getting patches reviewed, and committing patches.
The git cl tool handles details of interacting with Gerrit (the Chromium code review tool) and is recommended for pushing patches for review. Once you have committed changes locally, simply run:
git cl format
git cl upload
The first command will will auto-format the code changes using clang-format. Then, the second command runs the PRESUBMIT.py script to check style and, if it passes, a newcode review will be posted on chromium-review.googlesource.com.
If you make additional commits to your local branch, then running git cl upload again in the same branch will merge those commits into the ongoing review as a new patchset.
It's simplest to create a local git branch for each patch you want reviewed separately. git cl keeps track of review status separately for each local branch.
If conflicting commits have been landed in the repository for a patch in review, Gerrit will flag the patch as having a merge conflict. In that case, use the instructions above to rebase your commits on top-of-tree and upload a new patchset with the merge conflicts resolved.
Clicking the CQ DRY RUN button (also, confusingly, labeled COMMIT QUEUE +1) will run the current patchset through all LUCI builders and report the results. It is always a good idea get a green tryjob on a patch before sending it for review to avoid extra back-and-forth.
You can also run git cl try from the commandline to submit a tryjob.
Send your patch to one or more committers in the COMMITTERS file for code review. All patches must receive at least one LGTM by a committer before it can be submitted.
After your patch has received one or more LGTM commit it by clicking the SUBMIT button (or, confusingly, COMMIT QUEUE +2) in Gerrit. This will run your patch through the builders again before committing to the main openscreen repository.