Roll buildtools/ 56013b77b..004597624 (21 commits) https://chromium.googlesource.com/chromium/src/buildtools/+log/56013b77b6c0..00459762409c $ git log 56013b77b..004597624 --date=short --no-merges --format='%ad %ae %s' 2025-02-10 hans Reland "Roll libc++ from 2e25154d49c2 to 12150825ca73 (42 revisions)" 2025-02-09 tikuta buildtools: fix path of Clang builtin's modulemap 2025-02-05 ayzhao Reland "Update clang-format binaries and scripts for all platforms." 2025-02-04 tikuta Enable explicit module build by use_libcxx_modules arg 2025-02-04 rop LSC updating license IDs 2025-02-04 bryner Revert "Update clang-format binaries and scripts for all platforms." 2025-02-04 ayzhao Update clang-format binaries and scripts for all platforms. 2025-02-03 hidehiko Move remaining files from ash/components. 2025-01-29 ust Revert "Roll libc++ from 2e25154d49c2 to 12150825ca73 (42 revisions)" 2025-01-28 hans Roll libc++ from 2e25154d49c2 to 12150825ca73 (42 revisions) 2025-01-13 chromium-autoroll Roll libc++ from 74dd76082606 to 2e25154d49c2 (27 revisions) 2025-01-09 bpastene Revert "Roll libc++ from 74dd76082606 to ea23ca07bf48 (12 revisions)" 2025-01-09 chromium-autoroll Roll libc++ from 74dd76082606 to ea23ca07bf48 (12 revisions) 2025-01-07 neis Fix typo in buildtools/checkdeps/README.md 2025-01-07 chromium-autoroll Roll libc++ from 1f7db7501cf9 to 74dd76082606 (8 revisions) 2025-01-05 chromium-autoroll Roll libc++ from cd5c0d7a12c6 to 1f7db7501cf9 (1 revision) 2025-01-04 chromium-autoroll Roll libc++ from a3f93e508225 to cd5c0d7a12c6 (1 revision) 2025-01-03 chromium-autoroll Roll libc++ from 80194f087251 to a3f93e508225 (1 revision) 2025-01-02 chromium-autoroll Roll libc++ from b4511937e4e5 to 80194f087251 (1 revision) 2025-01-02 chromium-autoroll Roll libc++ from 9ba1d4922ab2 to b4511937e4e5 (3 revisions) 2024-12-23 chromium-autoroll Roll libc++ from 11c38d901d29 to 9ba1d4922ab2 (3 revisions) Created with: roll-dep buildtools Roll build/ 4a2298be6..043f0ac1c (178 commits) https://chromium.googlesource.com/chromium/src/build/+log/4a2298be6252..043f0ac1c5fc $ git log 4a2298be6..043f0ac1c --date=short --no-merges --format='%ad %ae %s' 2025-02-10 tsepez Remove window system paths from unsafe_buffers_paths.txt. 2025-02-10 wnwen android: Add assertNonNull to simplify asserts 2025-02-10 milicau Add more changes to the whitespace_file.txt. 2025-02-10 ppp041991 v8: Fixing build failure on AIX 2025-02-07 gatong Update lastchange.py to accept version info from env 2025-02-07 mfarazma Fix compilation with gcc 2025-02-07 ukai Reland "Add missing *.py in google/protobuf" 2025-02-07 ukai Revert "Add missing *.py in google/protobuf" 2025-02-06 hans Roll clang+rust llvmorg-20-init-17108-g29ed6000-3 : llvmorg-21-init-853-gba476d0b-1 / ad211ced81509462cdfe4c29ed10f97279a0acae-1 : d4bdd1ed551fed0c951eb47b4be2c79d7a02d181-1 2025-02-06 ukai Add missing *.py in google/protobuf 2025-02-06 ukai md5_check: use relative path instead of absolute path 2025-02-06 ukai add google/protobuf/internal/python_edition_defaults.py 2025-02-06 mheikal Do not use buildserver if autoninja not run for a terminal 2025-02-06 agrieve Android: Disable build server in nocompile tests 2025-02-06 bjoyce Remove too_new description from stamp file changes 2025-02-05 ukai ide_query: add --format option 2025-02-05 agrieve Android: Remove obsolete R8 warnings suppressions 2025-02-05 ukai ide_query: don't use --prepare for *.java 2025-02-05 agrieve fast_local_dev_server.py: A few minor enhancements 2025-02-05 aymanm Set noparents inheritance for dependencies.txt 2025-02-05 agrieve Reland "Patch androidx and disable xml namespaces" 2025-02-05 fabiansommer Roll NaCl from a4ea8c1d3f06 to 1258a9e17b23 (1 revision) 2025-02-05 otara Add more text to the whitespace file 2025-02-05 gyuyoung Adds tvOS as a new top-level platform 2025-02-05 atsvirchkova Revert "Patch androidx and disable xml namespaces" 2025-02-04 ukai siso: define toolchain:link and sysroot:link for cros 2025-02-04 tikuta Enable explicit module build by use_libcxx_modules arg 2025-02-04 wangyj [fuchsia] Guard against unexpected format of product_bundle.json in update_product_bundles.py 2025-02-04 zijiehe [fuchsia] Add more tests in av_sync_tests 2025-02-04 agrieve Patch androidx and disable xml namespaces 2025-02-04 zijiehe [fuchsia] Trace the sys perf during the av_testing 2025-02-04 agrieve Reland: Remove old proguard flag keeping enum values 2025-02-04 bsazonov [Android] Support TYPE_USE for IntDefs generated from C++ enums 2025-02-03 wangyj [fuchsia] Guard against unexpected format of manifest.json in update_sdk.py 2025-02-03 agrieve fast_local_dev_server.py: --wait-for-build -> --wait-for-idle in done msg 2025-02-03 agrieve Android: Make dist_jar use processed .jar files 2025-02-03 agrieve Android: Make R8 and TraceReferences separate build steps 2025-01-31 bokan Move glic_enabled out of global features.gni 2025-01-31 mattdr Enable `-Wdangling-assignment-gsl` 2025-01-31 thomasalpinus [fuchsia] Drop dependency on edk2 2025-01-30 mheikal Make errors more visible in remote output 2025-01-30 tsepez Enforce unsafe_buffer_usage on ipcz files. 2025-01-30 agrieve fast_local_dev_server.py: Show status via tab titles 2025-01-30 mheikal [Build Server] Add support for waiting for all builds 2025-01-30 agrieve Fix @NullUnmarked suppressions in another batch of files 2025-01-29 msta If siso is supported but not used, provide a notification asking users if they want to switch. 2025-01-29 ukai gn_helpers: support absolute path import 2025-01-29 thomasanderson Rebuild sysroots 2025-01-29 zijiehe Revert "[fuchsia] api level 25 -> 26" 2025-01-29 sorin crashpad: fix the OWNERS file for third_party/crashpad (...) 2025-01-14 agrieve Android: Rename @AssumeNonNull -> @OptimizeAsNonNull 2025-01-14 tsepez Convert GN arg clang_unsafe_buffers_paths to a list. 2025-01-14 agrieve Android: Mark incremental_install java as chromium_code=false 2025-01-14 mheikal Touch stamp files when running errorprone 2025-01-13 agrieve Android: Fix list_java_targets.py if run after "gn clean" 2025-01-13 tsepez Remove clank/ from unsafe_buffers_paths.txt 2025-01-13 agrieve Android: Fix crash in generate_gradle.py wrt libopenxrruntime.so 2025-01-13 mheikal Do not touch stamp files when running under build_server 2025-01-13 mheikal Move attribute compatilbility code to ChromiumPlugin.groovy 2025-01-13 agrieve Manual Roll androidx from SgrqBlWCI5LkTzOF-... to fo4-wfWpq9bmst8F6... 2025-01-11 chromium-internal-autoroll Roll Fuchsia Internal Images from 26.20250104.100.1 to 26.20250111.100.1 2025-01-10 thomasanderson [Sysroot] Use consistent mtimes for deterministic builds 2025-01-10 thomasanderson [Sysroot] Minimize unnecessary files included in snapshots 2025-01-10 thomasanderson [Sysroot] Minimize package list 2025-01-10 thomasanderson [Sysroot] Remove verify_library_deps 2025-01-10 thomasanderson [Sysroot] Automatically add package dependencies 2025-01-10 olivierrobin Add gn variable to customize bundle ID suffix 2025-01-10 aeubanks Roll clang+rust llvmorg-20-init-16062-g091448e3-1 : llvmorg-20-init-17108-g29ed6000-1 / 8a1f8039a7ded79d3d4fe97b110016d89f2b11e2-1 : ad211ced81509462cdfe4c29ed10f97279a0acae-1 2025-01-09 jwata siso: Increase the timeout for remote solink steps 2025-01-09 weizhong Make clear that headless_shell_wpt_tests is the default for WPTs 2025-01-09 andreaorru Enable building mojo_proxy by default 2025-01-09 mheikal Roll androidx from gUjEawxv5mQO8yfbu... to SgrqBlWCI5LkTzOF-... 2025-01-09 agrieve Remove reference to enable_hilt_internal 2025-01-09 tschweitzer Trying my Chromium submission capabilities. 2025-01-08 ukai support siso in check_gn_headers.py 2025-01-08 alcooper Add WebXr browser tests to android_browsertests 2025-01-08 masonf Add explicit OWNERS for headless_shell.filter 2025-01-08 thomasanderson [Sysroot] Strip unneeded sections from sysroot binaries 2025-01-08 thomasanderson [Sysroot] Generate deterministic tarballs 2025-01-07 ukai use build/gn_helpers.py in use_{remoteexec,reclient}_value 2025-01-07 agrieve JNI Zero: Remove underscores from multiplexed names 2025-01-07 djmitche Roll cxx: 1.0.135 => 1.0.136 in //third_party/rust. 2025-01-07 arthursonzogni Reland "spanification: Enable -WUnsafe-buffer-usage to more dirs [3/7]" 2025-01-06 lauren Cleanup libevent unbundle 2025-01-06 estalin Adding a metric for determining Win11 upgrade eligibility 2025-01-06 tsepez Redefine pdfium sub-directory unsafe buffer suppression rules. 2025-01-06 ccameron Remove QCMS 2025-01-03 chromium-internal-autoroll Roll Fuchsia Internal Images from 26.20241227.103.1 to 26.20250104.100.1 2025-01-03 agrieve Android: Fix NoRedundantFieldInit warning for generated R.java files 2025-01-02 lukasza Stop globally disabling `unused-imports` lint when compiling Rust. 2025-01-02 thakis Reland^3 "Roll clang+rust llvmorg-20-init-13894-g8cb44859-1 : llvmorg-20-init-16062-g091448e3-1 / a522d78598415cdd614ccc6d961160f192f64b5c-1 : 8a1f8039a7ded79d3d4fe97b110016d89f2b11e2-1" 2025-01-02 arthurmilchior [java]Accept kMaxValue in enum 2025-01-01 arthursonzogni spanification: Enable -WUnsafe-buffer-usage to more dirs [5/7] 2024-12-27 chromium-internal-autoroll Roll Fuchsia Internal Images from 26.20241220.102.1 to 26.20241227.103.1 2024-12-27 arthursonzogni spanification: Enable -WUnsafe-buffer-usage to more dirs [6/7] 2024-12-26 wilkinsonclay Reland "Update serve_repo.py to use the standalone ffx repository server commands." 2024-12-26 arthursonzogni spanification: Enable -WUnsafe-buffer-usage to more dirs [7/7] 2024-12-26 arthursonzogni spanification: Enable -WUnsafe-buffer-usage to more dirs [4/7] 2024-12-23 davidben Reland "Add -fsanitize=pointer-overflow to the UBSan config" 2024-12-23 luci-bisection Revert "Add -fsanitize=pointer-overflow to the UBSan config" Created with: roll-dep build [email protected] Change-Id: I5fbf5d6991e3153c67186c18ee896c9c29dab07f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6250561 Reviewed-by: Jordan Bayles <[email protected]> Reviewed-by: Muyao Xu <[email protected]> Commit-Queue: Jordan Bayles <[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.