Chromium инструментарий
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Chromium инструментарий
Но это было давно ... поэтому продолжать разговор лучше в другой теме.
P.S. Меня в этот раз эта тема заинтересовала наибольшим образом в связи с системой сборки Ninja: см. Ninja
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
Во-первых: сколько времени собирается chromium?:
15.05.15 15:50:20
он у меня уже второй час компилируется на восьми потоках в 3,9 ГГц, когда это кончится? исходников было всего на 300 метров
Так можешь прогресс узнать, только chromium-43.0.2357.52 замени на свое.Код: Выделить всё
sudo egrep "\[.*\]" /var/tmp/portage/www-client/chromium-43.0.2357.52/temp/build.log | tail -1 | sed "s/ .*//g" | sed "s/\[//g" | sed "s/\]/*100/g" | bc -l
Знаю, что не оптимально, писалось на скорость для себя.
у меня на старом проце компилился до 5 часов. Наслаждайся.
4 часа примерно
Вот где истинная проверка на шустрость железа, особенно процов с их хвалеными частотами и шинами...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
И оригинальное руководство Chromium : Checking out and building Chromium on Linux13.06.19
Большинство людей привыкли, что Chromium — это и браузер, и основа для других браузеров. До недавнего времени я тоже так думал, но, изучая эту тему уже пару месяцев, я начал открывать другой дивный мир. Chromium — это огромная экосистема, в которой есть всё: и система зависимостей, и система кроссплатформенной сборки, и компоненты почти на все случаи жизни. Так почему же не попробовать создавать свои приложения, используя всю эту мощь?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
Всё что касается инструментария Chromium, и всей этой темы - это мой конспект, для себя ... со всеми экспериментами и тупиковыми действиями.
Поэтому кого это непосредственно не касается (не интересует) - дальше не нужно тратить времени!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
1.
Install depot_tools
Код: Выделить всё
olej@R420:~$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
Клонирование в «depot_tools»…
remote: Sending approximately 32.11 MiB ...
remote: Total 45328 (delta 34040), reused 45328 (delta 34040)
Получение объектов: 100% (45328/45328), 32.11 MiB | 3.24 MiB/s, готово.
Определение изменений: 100% (34040/34040), готово.
Код: Выделить всё
olej@R420:~$ ls -l depot_tools/
итого 3344
-rw-rw-r-- 1 olej olej 5204 авг 16 11:52 auth.py
-rwxrwxr-x 1 olej olej 1305 авг 16 11:52 autoninja
-rwxrwxr-x 1 olej olej 2106 авг 16 11:52 autoninja.bat
-rwxrwxr-x 1 olej olej 8873 авг 16 11:52 autoninja.py
-rwxrwxr-x 1 olej olej 368 авг 16 11:52 bb
-rw-rw-r-- 1 olej olej 296 авг 16 11:52 bb.bat
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 bootstrap
-rw-rw-r-- 1 olej olej 982 авг 16 11:52 bootstrap_python3
-rw-rw-r-- 1 olej olej 485 авг 16 11:52 breakpad.py
lrwxrwxrwx 1 olej olej 4 авг 16 11:52 cbuildbot -> cros
-rwxrwxr-x 1 olej olej 7702 авг 16 11:52 cipd
-rw-rw-r-- 1 olej olej 1815 авг 16 11:52 cipd.bat
-rw-rw-r-- 1 olej olej 288 авг 16 11:52 cipd_bin_setup.bat
-rw-rw-r-- 1 olej olej 611 авг 16 11:52 cipd_bin_setup.sh
-rw-rw-r-- 1 olej olej 54 авг 16 11:52 cipd_client_version
-rw-rw-r-- 1 olej olej 1602 авг 16 11:52 cipd_client_version.digests
-rw-rw-r-- 1 olej olej 3102 авг 16 11:52 cipd_manifest.txt
-rw-rw-r-- 1 olej olej 16841 авг 16 11:52 cipd_manifest.versions
-rwxrwxr-x 1 olej olej 276 авг 16 11:52 cit
-rwxrwxr-x 1 olej olej 411 авг 16 11:52 cit.bat
-rwxrwxr-x 1 olej olej 5319 авг 16 11:52 cit.py
-rwxrwxr-x 1 olej olej 281 авг 16 11:52 clang-format
-rw-rw-r-- 1 olej olej 416 авг 16 11:52 clang-format.bat
-rwxrwxr-x 1 olej olej 294 авг 16 11:52 clang_format_merge_driver
-rwxrwxr-x 1 olej olej 429 авг 16 11:52 clang_format_merge_driver.bat
-rwxrwxr-x 1 olej olej 2458 авг 16 11:52 clang_format_merge_driver.py
-rwxrwxr-x 1 olej olej 2658 авг 16 11:52 clang_format.py
-rw-rw-r-- 1 olej olej 274 авг 16 11:52 codereview.settings
-rwxrwxr-x 1 olej olej 299 авг 16 11:52 compile_single_file
-rw-rw-r-- 1 olej olej 395 авг 16 11:52 compile_single_file.bat
-rw-rw-r-- 1 olej olej 2550 авг 16 11:52 compile_single_file.py
-rw-rw-r-- 1 olej olej 390 авг 16 11:52 cpplint.bat
-rwxrwxr-x 1 olej olej 2394 авг 16 11:52 cpplint_chromium.py
-rwxrwxr-x 1 olej olej 235287 авг 16 11:52 cpplint.py
-rwxrwxr-x 1 olej olej 2698 авг 16 11:52 cros
-rwxrwxr-x 1 olej olej 376 авг 16 11:52 crosjobs
-rw-rw-r-- 1 olej olej 212 авг 16 11:52 CROS_OWNERS
lrwxrwxrwx 1 olej olej 4 авг 16 11:52 cros_sdk -> cros
-rwxrwxr-x 1 olej olej 1715 авг 16 11:52 detect_host_arch.py
-rwxrwxr-x 1 olej olej 371 авг 16 11:52 dirmd
-rw-rw-r-- 1 olej olej 299 авг 16 11:52 dirmd.bat
-rw-rw-r-- 1 olej olej 39 авг 16 11:52 DIR_METADATA
-rwxrwxr-x 1 olej olej 301 авг 16 11:52 download_from_google_storage
-rwxrwxr-x 1 olej olej 435 авг 16 11:52 download_from_google_storage.bat
-rwxrwxr-x 1 olej olej 25020 авг 16 11:52 download_from_google_storage.py
-rwxrwxr-x 1 olej olej 1666 авг 16 11:52 ensure_bootstrap
-rwxrwxr-x 1 olej olej 768 авг 16 11:52 fetch
-rwxrwxr-x 1 olej olej 908 авг 16 11:52 fetch.bat
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 fetch_configs
-rwxrwxr-x 1 olej olej 10340 авг 16 11:52 fetch.py
-rw-rw-r-- 1 olej olej 12462 авг 16 11:52 fix_encoding.py
-rwxrwxr-x 1 olej olej 1122 авг 16 11:52 gclient
-rwxrwxr-x 1 olej olej 1016 авг 16 11:52 gclient.bat
-rwxrwxr-x 1 olej olej 2322 авг 16 11:52 gclient_completion.sh
-rw-rw-r-- 1 olej olej 32406 авг 16 11:52 gclient_eval.py
-rwxrwxr-x 1 olej olej 4179 авг 16 11:52 gclient-new-workdir.py
-rw-rw-r-- 1 olej olej 5124 авг 16 11:52 gclient_paths.py
-rwxrwxr-x 1 olej olej 121153 авг 16 11:52 gclient.py
-rw-rw-r-- 1 olej olej 63221 авг 16 11:52 gclient_scm.py
-rw-rw-r-- 1 olej olej 41380 авг 16 11:52 gclient_utils.py
-rwxrwxr-x 1 olej olej 12918 авг 16 11:52 gerrit_client.py
-rw-rw-r-- 1 olej olej 39401 авг 16 11:52 gerrit_util.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-cache
-rwxrwxr-x 1 olej olej 30779 авг 16 11:52 git_cache.py
-rwxrwxr-x 1 olej olej 219 авг 16 11:52 git-cl
-rwxrwxr-x 1 olej olej 1313 авг 16 11:52 git_cl_completion.sh
-rwxrwxr-x 1 olej olej 205153 авг 16 11:52 git_cl.py
-rw-rw-r-- 1 olej olej 32316 авг 16 11:52 git_common.py
-rwxrwxr-x 1 olej olej 1730 авг 16 11:52 git-crrev-parse
-rw-rw-r-- 1 olej olej 1800 авг 16 11:52 git_dates.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-drover
-rwxrwxr-x 1 olej olej 1515 авг 16 11:52 git_drover.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-find-releases
-rwxrwxr-x 1 olej olej 1976 авг 16 11:52 git_find_releases.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-footers
-rwxrwxr-x 1 olej olej 8572 авг 16 11:52 git_footers.py
-rwxrwxr-x 1 olej olej 256 авг 16 11:52 git-freeze
-rwxrwxr-x 1 olej olej 871 авг 16 11:52 git_freezer.py
-rwxrwxr-x 1 olej olej 529 авг 16 11:52 git-gs
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-hyper-blame
-rwxrwxr-x 1 olej olej 12524 авг 16 11:52 git_hyper_blame.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-map
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-map-branches
-rwxrwxr-x 1 olej olej 11367 авг 16 11:52 git_map_branches.py
-rwxrwxr-x 1 olej olej 4692 авг 16 11:52 git_map.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-mark-merge-base
-rwxrwxr-x 1 olej olej 2059 авг 16 11:52 git_mark_merge_base.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-migrate-default-branch
-rw-rw-r-- 1 olej olej 3124 авг 16 11:52 git_migrate_default_branch.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-nav-downstream
-rwxrwxr-x 1 olej olej 1971 авг 16 11:52 git_nav_downstream.py
-rwxrwxr-x 1 olej olej 236 авг 16 11:52 git-nav-upstream
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-new-branch
-rwxrwxr-x 1 olej olej 3069 авг 16 11:52 git_new_branch.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-number
-rwxrwxr-x 1 olej olej 9637 авг 16 11:52 git_number.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-rebase-update
-rwxrwxr-x 1 olej olej 12511 авг 16 11:52 git_rebase_update.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-rename-branch
-rwxrwxr-x 1 olej olej 1662 авг 16 11:52 git_rename_branch.py
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-reparent-branch
-rwxrwxr-x 1 olej olej 3356 авг 16 11:52 git_reparent_branch.py
-rwxrwxr-x 1 olej olej 253 авг 16 11:52 git-retry
-rwxrwxr-x 1 olej olej 5791 авг 16 11:52 git_retry.py
-rwxrwxr-x 1 olej olej 612 авг 16 11:52 git-runhooks
-rwxrwxr-x 1 olej olej 215 авг 16 11:52 git-squash-branch
-rwxrwxr-x 1 olej olej 748 авг 16 11:52 git_squash_branch.py
drwxrwxr-x 4 olej olej 4096 авг 16 11:52 git-templates
-rwxrwxr-x 1 olej olej 504 авг 16 11:52 git-thaw
-rwxrwxr-x 1 olej olej 306 авг 16 11:52 git-upstream-diff
-rwxrwxr-x 1 olej olej 2044 авг 16 11:52 git_upstream_diff.py
-rwxrwxr-x 1 olej olej 271 авг 16 11:52 gn
-rw-rw-r-- 1 olej olej 406 авг 16 11:52 gn.bat
-rwxrwxr-x 1 olej olej 2992 авг 16 11:52 gn.py
-rwxrwxr-x 1 olej olej 558 авг 16 11:52 goma_auth
-rw-rw-r-- 1 olej olej 370 авг 16 11:52 goma_auth.bat
-rwxrwxr-x 1 olej olej 556 авг 16 11:52 goma_ctl
-rw-rw-r-- 1 olej olej 369 авг 16 11:52 goma_ctl.bat
-rw-rw-r-- 1 olej olej 173 авг 16 11:52 GOMA_OWNERS
-rwxrwxr-x 1 olej olej 5637 авг 16 11:52 gsutil.py
-rwxrwxr-x 1 olej olej 731 авг 16 11:52 gsutil.py.bat
-rw-rw-r-- 1 olej olej 2379 авг 16 11:52 gsutil.vpython
drwxrwxr-x 3 olej olej 4096 авг 16 11:52 infra
-rwxrwxr-x 1 olej olej 369 авг 16 11:52 led
-rw-rw-r-- 1 olej olej 306 авг 16 11:52 led.bat
-rw-rw-r-- 1 olej olej 1563 авг 16 11:52 LICENSE
-rw-rw-r-- 1 olej olej 3010 авг 16 11:52 lockfile.py
-rwxrwxr-x 1 olej olej 376 авг 16 11:52 luci-auth
-rw-rw-r-- 1 olej olej 304 авг 16 11:52 luci-auth.bat
-rwxrwxr-x 1 olej olej 373 авг 16 11:52 lucicfg
-rw-rw-r-- 1 olej olej 310 авг 16 11:52 lucicfg.bat
-rw-rw-r-- 1 olej olej 121 авг 16 11:52 LUCI_OWNERS
-rwxrwxr-x 1 olej olej 331 авг 16 11:52 mac_toolchain
drwxrwxr-x 6 olej olej 4096 авг 16 11:52 man
-rw-rw-r-- 1 olej olej 9989 авг 16 11:52 metrics.py
-rw-rw-r-- 1 olej olej 4520 авг 16 11:52 metrics.README.md
-rw-rw-r-- 1 olej olej 9897 авг 16 11:52 metrics_utils.py
-rwxrwxr-x 1 olej olej 34706 авг 16 11:52 my_activity.py
-rwxrwxr-x 1 olej olej 1279 авг 16 11:52 ninja
-rwxrwxr-x 1 olej olej 504320 авг 16 11:52 ninja.exe
-rwxrwxr-x 1 olej olej 161640 авг 16 11:52 ninja-linux32
-rwxrwxr-x 1 olej olej 183344 авг 16 11:52 ninja-linux64
-rw-rw-r-- 1 olej olej 1928 авг 16 11:52 ninjalog.README.md
-rwxrwxr-x 1 olej olej 6618 авг 16 11:52 ninjalog_uploader.py
-rwxrwxr-x 1 olej olej 3270 авг 16 11:52 ninjalog_uploader_wrapper.py
-rwxrwxr-x 1 olej olej 387474 авг 16 11:52 ninja-mac
-rw-rw-r-- 1 olej olej 1027 авг 16 11:52 OWNERS
-rw-rw-r-- 1 olej olej 6983 авг 16 11:52 owners_client.py
-rw-rw-r-- 1 olej olej 10948 авг 16 11:52 owners_finder.py
-rw-rw-r-- 1 olej olej 23729 авг 16 11:52 owners.py
-rwxrwxr-x 1 olej olej 374 авг 16 11:52 pinpoint
-rw-rw-r-- 1 olej olej 302 авг 16 11:52 pinpoint.bat
-rw-rw-r-- 1 olej olej 14791 авг 16 11:52 post_build_ninja_summary.py
-rw-rw-r-- 1 olej olej 70079 авг 16 11:52 presubmit_canned_checks.py
-rw-rw-r-- 1 olej olej 8357 авг 16 11:52 presubmit_canned_checks_test_mocks.py
-rw-rw-r-- 1 olej olej 8783 авг 16 11:52 presubmit_canned_checks_test.py
-rw-rw-r-- 1 olej olej 6056 авг 16 11:52 PRESUBMIT.py
-rwxrwxr-x 1 olej olej 72667 авг 16 11:52 presubmit_support.py
-rw-rw-r-- 1 olej olej 282 авг 16 11:52 profile.xml
-rwxrwxr-x 1 olej olej 371 авг 16 11:52 prpc
-rw-rw-r-- 1 olej olej 299 авг 16 11:52 prpc.bat
-rwxrwxr-x 1 olej olej 302 авг 16 11:52 pylint
-rwxrwxr-x 1 olej olej 1894 авг 16 11:52 pylint-1.5
-rw-rw-r-- 1 olej olej 411 авг 16 11:52 pylint-1.5.bat
-rwxrwxr-x 1 olej olej 1861 авг 16 11:52 pylint-1.6
-rwxrwxr-x 1 olej olej 1861 авг 16 11:52 pylint-1.7
-rwxrwxr-x 1 olej olej 1894 авг 16 11:52 pylint-1.8
-rwxrwxr-x 1 olej olej 1894 авг 16 11:52 pylint-1.9
-rwxrwxr-x 1 olej olej 1628 авг 16 11:52 pylint-2.6
-rw-rw-r-- 1 olej olej 412 авг 16 11:52 pylint-2.6.bat
-rw-rw-r-- 1 olej olej 411 авг 16 11:52 pylint.bat
-rwxrwxr-x 1 olej olej 2211 авг 16 11:52 pylint_main.py
-rw-rw-r-- 1 olej olej 9351 авг 16 11:52 pylintrc
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 python2-bin
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 python-bin
-rwxrwxr-x 1 olej olej 2154 авг 16 11:52 python_runner.sh
-rwxrwxr-x 1 olej olej 369 авг 16 11:52 rdb
-rw-rw-r-- 1 olej olej 297 авг 16 11:52 rdb.bat
-rw-rw-r-- 1 olej olej 2398 авг 16 11:52 rdb_wrapper.py
-rw-rw-r-- 1 olej olej 3579 авг 16 11:52 README.gclient.md
-rw-rw-r-- 1 olej olej 4239 авг 16 11:52 README.git-cl.md
-rw-rw-r-- 1 olej olej 2867 авг 16 11:52 README.md
drwxrwxr-x 4 olej olej 4096 авг 16 11:52 recipes
-rwxrwxr-x 1 olej olej 1636 авг 16 11:52 repo
-rwxrwxr-x 1 olej olej 44711 авг 16 11:52 repo_launcher
-rwxrwxr-x 1 olej olej 783 авг 16 11:52 roll-dep
-rwxrwxr-x 1 olej olej 700 авг 16 11:52 roll-dep.bat
-rwxrwxr-x 1 olej olej 11164 авг 16 11:52 roll_dep.py
-rw-rw-r-- 1 olej olej 15146 авг 16 11:52 scm.py
-rw-rw-r-- 1 olej olej 4672 авг 16 11:52 setup_color.py
-rw-rw-r-- 1 olej olej 9969 авг 16 11:52 split_cl.py
-rw-rw-r-- 1 olej olej 8998 авг 16 11:52 subcommand.py
-rw-rw-r-- 1 olej olej 8030 авг 16 11:52 subprocess2.py
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 testing_support
drwxrwxr-x 3 olej olej 4096 авг 16 11:52 tests
drwxrwxr-x 9 olej olej 4096 авг 16 11:52 third_party
-rwxrwxr-x 1 olej olej 4189 авг 16 11:52 update_depot_tools
-rw-rw-r-- 1 olej olej 2387 авг 16 11:52 update_depot_tools.bat
-rw-rw-r-- 1 olej olej 1112 авг 16 11:52 update_depot_tools_toggle.py
-rw-rw-r-- 1 olej olej 780 авг 16 11:52 upload_metrics.py
-rwxrwxr-x 1 olej olej 10974 авг 16 11:52 upload_to_google_storage.py
-rwxrwxr-x 1 olej olej 1617 авг 16 11:52 vpython
-rwxrwxr-x 1 olej olej 1577 авг 16 11:52 vpython3
-rw-rw-r-- 1 olej olej 603 авг 16 11:52 vpython3.bat
-rw-rw-r-- 1 olej olej 350 авг 16 11:52 vpython.bat
-rwxrwxr-x 1 olej olej 560 авг 16 11:52 WATCHLISTS
-rwxrwxr-x 1 olej olej 4435 авг 16 11:52 watchlists.py
-rwxrwxr-x 1 olej olej 1619 авг 16 11:52 weekly
-rw-rw-r-- 1 olej olej 3 авг 16 11:52 whitespace.txt
-rw-rw-r-- 1 olej olej 2231 авг 16 11:52 win32imports.py
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 win_toolchain
-rwxrwxr-x 1 olej olej 2151 авг 16 11:52 wtf
-rwxrwxr-x 1 olej olej 367 авг 16 11:52 yapf
-rwxrwxr-x 1 olej olej 410 авг 16 11:52 yapf.bat
drwxrwxr-x 2 olej olej 4096 авг 16 11:52 zsh-goodies
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
2.
Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools:
Код: Выделить всё
olej@R420:~$ tail -n2 .bashrc
export PATH=$HOME/.bin:$PATH
export PATH=$PATH:$HOME/depot_tools
Код: Выделить всё
olej@R420:~$ echo $PATH
/home/olej/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/olej/depot_tools
Код: Выделить всё
olej@R420:~$ which fetch
/home/olej/depot_tools/fetch
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
Get the code
Create a chromium directory for the checkout and change to it (you can call this whatever you like and put it wherever you like, as long as the full path has no spaces):Run the fetch tool from depot_tools to check out the code and its dependencies.Код: Выделить всё
$ mkdir ~/chromium && cd ~/chromium
Код: Выделить всё
$ fetch --nohooks chromium
Всё не так гладко как в описаниях:После этого можно скачать исходники с помощью утилиты fetch из depot_tools:Код: Выделить всё
fetch --nohooks --no-history chromium
Код: Выделить всё
olej@R420:~/chromium$ time fetch --nohooks --no-history chromium
Running: gclient root
...
Syncing projects: 46% (58/124) src/third_party/re2/src
[0:19:54] Still working on:
[0:19:54] src/buildtools/third_party/libc++/trunk
[0:19:54] src/chrome/test/data/perf/canvas_bench
[0:19:54] src/chrome/test/data/xr/webvr_info
[0:19:54] src/native_client
[0:19:54] src/net/third_party/quiche/src
[0:19:54] src/third_party/angle
[0:19:54] src/third_party/boringssl/src
[0:19:54] src/third_party/breakpad/breakpad
[0:19:54] src/third_party/catapult
[0:19:54] src/third_party/dawn
[0:19:54] src/third_party/depot_tools
[0:19:54] src/third_party/devtools-frontend/src
[0:19:54] src/third_party/eigen3/src
[0:19:54] src/third_party/expat/src
[0:19:54] src/third_party/ffmpeg
[0:19:54] src/third_party/flatbuffers/src
[0:19:54] src/third_party/freetype/src
[0:19:54] src/third_party/glfw/src
[0:19:54] src/third_party/googletest/src
[0:19:54] src/third_party/grpc/src
[0:19:54] src/third_party/harfbuzz-ng/src
[0:19:54] src/third_party/hunspell_dictionaries
[0:19:54] src/third_party/icu
[0:19:54] src/third_party/libaom/source/libaom
[0:19:54] src/third_party/libjxl/src
[0:19:54] src/third_party/liblouis/src
[0:19:54] src/third_party/libphonenumber/dist
[0:19:54] src/third_party/libvpx/source/libvpx
[0:19:54] src/third_party/openh264/src
[0:19:54] src/third_party/openscreen/src
[0:19:54] src/third_party/ots/src
[0:19:54] src/third_party/pdfium
[0:19:54] src/third_party/perfetto
[0:19:54] src/third_party/skia
[0:19:54] src/third_party/sqlite/src
[0:19:54] src/third_party/swiftshader
[0:19:54] src/third_party/tflite/src
[0:19:54] src/third_party/usrsctp/usrsctplib
[0:19:54] src/third_party/vulkan_memory_allocator
[0:19:54] src/third_party/wayland-protocols/gtk
...
[0:20:08] Cloning into '/home/olej/chromium/src/third_party/wayland/_gclient_src_2f4tubs4'...
[0:20:08] error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
[0:20:08] fatal: the remote end hung up unexpectedly
[0:20:09]
...
Traceback (most recent call last):
File "/home/olej/.vpython-root/3b981d/lib/python3.8/shutil.py", line 791, in move
os.rename(src, real_dst)
FileNotFoundError: [Errno 2] No such file or directory: '/home/olej/chromium/src/third_party/wayland/src' -> '/home/olej/chromium/_bad_scm/src/third_party/wayland/srcxd61s7fj/src'
...
real 72m14,763s
user 22m22,234s
sys 5m16,776s
2. кроме одного wayland (с этой гадостью всегда всё не так!)
3. это заняло 72 минуты на а). сервере с 40 процессорами (core) + 96Gb RAM + Интернет канале 50MiB ...
4. как видно по системной информации, это время определяется только скачиванием, в 1 процессор, и слабо зависит от оборудования:
- Вложения
-
- Снимок экрана от 2021-08-16 16-54-11.png (188.13 КБ) 1215 просмотров
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
4.Установка зависимостей
Все исходники лежат в папке src, идём в неё:Теперь нужно поставить все зависимости с помощью скрипта:Код: Выделить всё
cd src
И запустить хуки:Код: Выделить всё
./build/install-build-deps.sh
На этом подготовка окружения завершена.Код: Выделить всё
gclient runhooks
Код: Выделить всё
olej@R420:~/chromium$ cd src
olej@R420:~/chromium/src$ time ./build/install-build-deps.sh
ERROR: The only supported distros are
Ubuntu 14.04 LTS (trusty with EoL April 2022)
Ubuntu 16.04 LTS (xenial with EoL April 2024)
Ubuntu 18.04 LTS (bionic with EoL April 2028)
Ubuntu 20.04 LTS (focal with Eol April 2030)
Ubuntu 20.10 (groovy)
Debian 10 (buster) or later
real 0m0,102s
user 0m0,098s
sys 0m0,004s
Код: Выделить всё
olej@R420:~/chromium/src$ time sudo ./build/install-build-deps.sh --unsupported
...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
snapcraft : PreDepends: snapd but it is not installable
You will have to install the above packages yourself.
real 0m18,125s
user 0m7,073s
sys 0m1,893s
Код: Выделить всё
olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 20.2
Release: 20.2
Codename: uma
Код: Выделить всё
olej@R420:~/chromium/src$ pwd
/home/olej/chromium/src
olej@R420:~/chromium/src$ gclient runhooks
Running hooks: 100% (112/112), done.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
5.
depot_tools_tutorial(7) Manual Page
Привести в соответствие, более-менее, то что в конфигурациях GIT:BOOTSTRAPPING CONFIGURATION
Код: Выделить всё
olej@R420:~/chromium/src$ git config -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://chromium.googlesource.com/chromium/src.git
remote.origin.fetch=+refs/heads/main:refs/remotes/origin/main
branch.main.remote=origin
branch.main.merge=refs/heads/main
Код: Выделить всё
olej@R420:~/chromium/src$ git config --global user.name "Oleg Tsiliuric"
olej@R420:~/chromium/src$ git config --global user.email "olej.tsil@gmail.com"
olej@R420:~/chromium/src$ git config --global core.autocrlf false
olej@R420:~/chromium/src$ git config --global core.filemode false
olej@R420:~/chromium/src$ git config --global color.ui true
Код: Выделить всё
olej@R420:~/chromium/src$ git config -l
user.name=Oleg Tsiliuric
user.email=olej.tsil@gmail.com
core.autocrlf=false
core.filemode=false
color.ui=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://chromium.googlesource.com/chromium/src.git
remote.origin.fetch=+refs/heads/main:refs/remotes/origin/main
branch.main.remote=origin
branch.main.merge=refs/heads/main
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Chromium инструментарий
Теперь можно добавить собственный example в этом окружении (Chromium — это не только браузер, но и хороший фреймворк)
Код: Выделить всё
olej@R420:~/chromium/src$ mkdir example
olej@R420:~/chromium/src$ cd example
Код: Выделить всё
olej@R420:~/chromium/src/example$ cat BUILD.gn
executable("example") {
sources = [
"example.cc",
]
}
Код: Выделить всё
olej@R420:~/chromium/src/example$ cat example.cc
#include <iostream>
int main(int argc, char **argv) {
std::cout << "Hello world" << std::endl;
return 0;
}
Чтобы GN узнала о новом проекте, нужно в файле BUILD.gn, который находится в src, в разделе deps добавить строку "//example":
Код: Выделить всё
...
"//url:url_unittests",
# ↓↓↓↓↓↓↓↓
"//example",
]
...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей