Chromium инструментарий

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Chromium инструментарий

Непрочитанное сообщение Olej » 15 авг 2021, 11:28

Уже была такая тема Chromium - сборка и модификация - 6 лет назад я занимался сборкой Chromium.
Но это было давно ... поэтому продолжать разговор лучше в другой теме.

P.S. Меня в этот раз эта тема заинтересовала наибольшим образом в связи с системой сборки Ninja: см. Ninja

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium инструментарий

Непрочитанное сообщение Olej » 15 авг 2021, 11:33

Olej писал(а):
15 авг 2021, 11:28
Но это было давно ...
Во-первых: сколько времени собирается chromium?:
15.05.15 15:50:20
он у меня уже второй час компилируется на восьми потоках в 3,9 ГГц, когда это кончится? исходников было всего на 300 метров

Код: Выделить всё

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
Так можешь прогресс узнать, только chromium-43.0.2357.52 замени на свое.
Знаю, что не оптимально, писалось на скорость для себя.
у меня на старом проце компилился до 5 часов. Наслаждайся.
4 часа примерно
Вот где истинная проверка на шустрость железа, особенно процов с их хвалеными частотами и шинами...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium инструментарий

Непрочитанное сообщение Olej » 15 авг 2021, 11:36

Во-вторых: Chromium — это не только браузер, но и хороший фреймворк
13.06.19
Большинство людей привыкли, что Chromium — это и браузер, и основа для других браузеров. До недавнего времени я тоже так думал, но, изучая эту тему уже пару месяцев, я начал открывать другой дивный мир. Chromium — это огромная экосистема, в которой есть всё: и система зависимостей, и система кроссплатформенной сборки, и компоненты почти на все случаи жизни. Так почему же не попробовать создавать свои приложения, используя всю эту мощь?
Изображение
И оригинальное руководство Chromium : Checking out and building Chromium on Linux

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 10:45

Olej писал(а):
15 авг 2021, 11:36
Во-вторых: Chromium — это не только браузер, но и хороший фреймворк
Olej писал(а):
15 авг 2021, 11:36
И оригинальное руководство Chromium : Checking out and building Chromium on Linux
Всё что касается инструментария Chromium, и всей этой темы - это мой конспект, для себя ... со всеми экспериментами и тупиковыми действиями.
Поэтому кого это непосредственно не касается (не интересует) - дальше не нужно тратить времени! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 10:51

Olej писал(а):
17 авг 2021, 10:45
это мой конспект, для себя
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 инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 10:53

Olej писал(а):
17 авг 2021, 10:51
1.
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 инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 11:05

3.
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):

Код: Выделить всё

$ mkdir ~/chromium && cd ~/chromium
Run the fetch tool from depot_tools to check out the code and its dependencies.

Код: Выделить всё

$ 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
1. со всеми множественными зависимостями всё ОК ...
2. кроме одного wayland (с этой гадостью всегда всё не так!)
3. это заняло 72 минуты на а). сервере с 40 процессорами (core) + 96Gb RAM + Интернет канале 50MiB :-o ...
4. как видно по системной информации, это время определяется только скачиванием, в 1 процессор, и слабо зависит от оборудования:
Вложения
Снимок экрана от 2021-08-16 16-54-11.png
Снимок экрана от 2021-08-16 16-54-11.png (188.13 КБ) 1107 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Chromium инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 11:17

Установка зависимостей
Все исходники лежат в папке src, идём в неё: Теперь нужно поставить все зависимости с помощью скрипта:

Код: Выделить всё

./build/install-build-deps.sh
И запустить хуки:

Код: Выделить всё

gclient runhooks
На этом подготовка окружения завершена.
4.

Код: Выделить всё

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
Один пакет snapcraft не найден в моих репозиториях:

Код: Выделить всё

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.2
Release:	20.2
Codename:	uma
Нужно будет поискать .deb и доустановить вручную...

Код: Выделить всё

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 инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 11:27

Olej писал(а):
17 авг 2021, 11:17
4.
5.
depot_tools_tutorial(7) Manual Page
BOOTSTRAPPING CONFIGURATION
Привести в соответствие, более-менее, то что в конфигурациях GIT:

Код: Выделить всё

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 инструментарий

Непрочитанное сообщение Olej » 17 авг 2021, 11:27

Olej писал(а):
17 авг 2021, 11:17
5.
Теперь можно добавить собственный 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",
  ]
...

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей