Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Grokhotkov bb25d6abd3 Merge branch 'bugfix/newlib_leftover_files' into 'master'
newlib: remove leftover file from the binary distribution

See merge request espressif/esp-idf!22252
2023-02-12 03:08:25 +08:00
Ivan Grokhotkov e10ff6b4e3 newlib: remove leftover file from the binary distribution 2023-02-06 22:23:48 +01:00
Ivan Grokhotkov 248bc8a346 Merge branch 'feature/modbus_add_esp32c2_esp32c6_targets' into 'master'
examples: modbus add esp32c2 esp32c6 targets

See merge request espressif/esp-idf!22017
2023-01-28 00:45:47 +08:00
Ivan Grokhotkov cef0744299 Merge branch 'bugfix/linux_target_gen_partition_table' into 'master'
multiple fixes for linux target

Closes IDF-6641

See merge request espressif/esp-idf!21993
2023-01-18 11:57:08 +08:00
Ivan Grokhotkov 8084552722 Merge branch 'bugfix/sntp_docs_time_t_64bit' into 'master'
docs: remove outdated section on custom toolchain for 64-bit time_t

See merge request espressif/esp-idf!21994
2023-01-16 17:56:29 +08:00
Ivan Grokhotkov e7540dbe0e docs: remove the outdated "IDF monitor doesn't work on linux" notes 2023-01-13 08:14:56 +01:00
Ivan Grokhotkov ec8f38c9da build system: generate the partition table by default for linux target
This fixes the issue that "idf.py partition-table" had to be run
manually in order for the partition table to be generated, when
building for linux target.
2023-01-13 08:14:56 +01:00
Ivan Grokhotkov 98d1f7de4b tools: fix idf_monitor.py not working on macOS for Linux target
Since the introduction of PCAddressMatcher, the executable produced
by the build system is passed to elftools.elf.elffile.ELFFile.
However on macOS, native executables are not ELF files, so the
ELFFile class raises a rather unhelpful AssertionError exception.
Given that the rest of the idf_monitor.py doesn't have assumptions
that the "elf_file" argument is an ELF file (rather than just an
executable), check if the file is a real ELF file inside
PCAddressMatcher.
2023-01-13 08:14:55 +01:00
Ivan Grokhotkov 10e3b8edef Merge branch 'feature/esp32h2_backtrace' into 'master'
tools: gdb_panic_server: add esp32h2

See merge request espressif/esp-idf!21901
2023-01-09 22:06:57 +08:00
Ivan Grokhotkov 0dcdd39db1 soc: fix some memory region boundaries for esp32c3, esp32c2, esp32h4 2023-01-09 07:33:37 +00:00
Ivan Grokhotkov 61c5fc21e1 docs: fix nvs-related docs build issue 2023-01-05 09:28:57 +01:00
Ivan Grokhotkov 38d36530f2 tools: gdb_panic_server: add esp32h2 2023-01-04 17:00:16 +01:00
Ivan Grokhotkov 8020407d3d Merge branch 'test/panic_add_riscv' into 'master'
tests: panic: add esp32s3, esp32c3, esp32c2 support

Closes IDF-5692

See merge request espressif/esp-idf!21349
2023-01-04 18:29:01 +08:00
Ivan Grokhotkov 6495810c5d test: panic: run tests on esp32s3, esp32c3, esp32c2 2023-01-03 15:29:58 +01:00
Ivan Grokhotkov e48b8eecff Merge branch 'bugfix/tools_json_riscv_gdb_targets' into 'master'
tools: fix RISC-V GDB not being installed for C2, C6, H2

See merge request espressif/esp-idf!21763
2023-01-02 16:55:04 +08:00
Ivan Grokhotkov 9368096123 Merge branch 'bugfix/test_build_system_fixtures' into 'master'
build system tests: fix issues with idf_copy and get_idf_build_env

See merge request espressif/esp-idf!21754
2023-01-02 16:14:38 +08:00
Ivan Grokhotkov 2a1e5e1939 tools: fix RISC-V GDB not being installed for C2, C6, H2 2022-12-22 10:11:48 +01:00
Ivan Grokhotkov 6020bb0f90 Merge branch 'feature/gdbstub_esp32c2' into 'master'
gdb stub: re-enable for ESP32-C2

Closes IDF-4135 and IDF-4245

See merge request espressif/esp-idf!21386
2022-12-22 16:00:01 +08:00
Ivan Grokhotkov 0c9ac7df6d system: disable interrupts in esp_restart_noos_dig 2022-12-21 21:58:59 +01:00
Ivan Grokhotkov 03c542ecf7 test_build_system: fix incomplete env returned by get_idf_build_env
Previously get_idf_build_env didn't include the default environment
(os.environ) in its output, so the environment only contained the
variables returned by "idf_tools.py export".
If PATH already contains all the right paths, "idf_tools.py export"
doesn't return the PATH variable.
Therefore the environment returned by get_idf_build_env was usually
incomplete. Fix by combining the output of "idf_tools.py export" with
os.environ.
2022-12-21 17:22:55 +01:00
Ivan Grokhotkov 5d2f900bef test_build_system: fix idf_copy fixture not changing IDF_PATH 2022-12-21 17:22:50 +01:00
Ivan Grokhotkov e3a4d47fd9 gdb stub: re-enable for ESP32-C2 2022-12-21 13:21:41 +01:00
Ivan Grokhotkov 32754865da Merge branch 'feature/spiflash_override_cmake_function' into 'master'
build system: Add spi_flash_add_link_dependency function for spi_flash custom driver

Closes IDF-3167

See merge request espressif/esp-idf!14186
2022-12-19 22:21:40 +08:00
Ivan Grokhotkov 75c92a8811 ci: use latest esp-clang for code analysis 2022-12-15 19:32:42 +01:00
Ivan Grokhotkov ff23012d68 Merge branch 'contrib/github_pr_10334' into 'master'
Set errno in adjtime (GitHub PR)

Closes IDFGH-8915

See merge request espressif/esp-idf!21516
2022-12-13 19:36:49 +08:00
Ivan Grokhotkov e603c9b04d Merge branch 'doc/cpu_breakpoint_watchpoint_num' into 'master'
docs: fix the number of breakpoints and watchpoints for RISC-V chips

See merge request espressif/esp-idf!21412
2022-12-09 22:21:50 +08:00
Ivan Grokhotkov f1b1540f61 docs: fix the number of breakpoints and watchpoints for RISC-V chips 2022-12-08 12:12:02 +01:00
Ivan Grokhotkov 9a1f2b95ea Merge branch 'contrib/github_pr_10304' into 'master'
Fixed mismatch in printf types (GitHub PR)

Closes IDFGH-8883

See merge request espressif/esp-idf!21450
2022-12-08 00:24:18 +08:00
Ivan Grokhotkov e20b28e0c8 hello_world: revert to %d for 8/16-bit for newlib-nano compatibility 2022-12-06 14:59:34 +01:00
Ivan Grokhotkov 29430e464d Merge branch 'fix/esp32s3_memprot' into 'master'
ESP32S3: Add memory protection for Icache region

Closes IDF-6390

See merge request espressif/esp-idf!21329
2022-12-01 11:41:47 +08:00
Ivan Grokhotkov c837974887 Merge branch 'bugfix/macos_linker_type' into 'master'
cmake: fixes related to linker flags

See merge request espressif/esp-idf!21178
2022-11-21 23:37:19 +08:00
Ivan Grokhotkov 7a298f98ae cmake: fix the linker type check for --whole-archive option
Checking that the host is macOS is not sufficient here, since the
linker is still a GNU linker when cross-compiling for a chip.
Instead, use the linker_type variable introduced in the previous
commit.
2022-11-21 13:08:05 +01:00
Ivan Grokhotkov b47155a70b cmake: fix the map file not generated when compiling with Clang
When compiling for a chip target with Clang,
CMAKE_C_COMPILER_ID="Clang" but the linker is still a GNU linker.
Therefore we can still generate the map file.
2022-11-21 13:06:17 +01:00
Ivan Grokhotkov 80d3dc9ac5 docs: add C++ support chapter to the API guides 2022-11-04 18:37:03 +01:00
Ivan Grokhotkov b14116ff95 Merge branch 'feature/partition_api_new_component_2' into 'master'
Storage: Partition APIs moved to the new component 'esp_partition'

Closes IDF-1234

See merge request espressif/esp-idf!20747
2022-11-04 14:59:08 +08:00
Ivan Grokhotkov 9fe10b99ca Merge branch 'doc/opt_esp32_eco3' into 'master'
docs: mention that increasing ESP32_REV_MIN can reduce IRAM size

See merge request espressif/esp-idf!20928
2022-11-03 22:23:16 +08:00
Ivan Grokhotkov 07fe9caba0 docs: mention that increasing ESP32_REV_MIN can reduce IRAM size 2022-11-03 11:08:01 +01:00
Ivan Grokhotkov 2d9e75bf05 Merge branch 'feature/upgrade_argtable_3_2_2_files' into 'master'
console: argtable3: upgrade to v3.2.2

Closes IDFGH-8443 and IDFGH-8566

See merge request espressif/esp-idf!20829
2022-10-28 05:25:21 +08:00
Ivan Grokhotkov 47ba2b48ea console: argtable3: upgrade to v3.2.2
Closes https://github.com/espressif/esp-idf/issues/9907
Closes https://github.com/espressif/esp-idf/pull/10016
2022-10-27 11:38:49 +02:00
Ivan Grokhotkov 642874e9dd Merge branch 'ci/update_wpa_supp_codeowners' into 'master'
ci: Update `wpa_supplicant` codeowners

See merge request espressif/esp-idf!20552
2022-10-19 00:56:47 +08:00
Ivan Grokhotkov 11ec9d392d Merge branch 'bugfix/storage_wformat' into 'master'
storage: fix and re-enable -Wformat warnings

See merge request espressif/esp-idf!20486
2022-10-18 20:21:53 +08:00
Ivan Grokhotkov 989d9e831f Merge branch 'bugfix/replace_port_get_runtime_counter_usage' into 'master'
freertos, app_trace: use esp_cpu_get_cycle_count to get ccount

Closes IDF-4744

See merge request espressif/esp-idf!20443
2022-10-13 21:40:07 +08:00
Ivan Grokhotkov 659460525f Merge branch 'test/spiffs_component_test_app' into 'master'
spiffs: move tests from unit-test-app to a component test app

Closes IDF-5602

See merge request espressif/esp-idf!20485
2022-10-13 20:01:39 +08:00
Ivan Grokhotkov c4be293e23 Merge branch 'test/fatfs_test_app_readme' into 'master'
fatfs: add missing readme file for the test apps

See merge request espressif/esp-idf!20522
2022-10-13 17:53:11 +08:00
Ivan Grokhotkov 8a45ff0957 Merge branch 'bugfix/reenable_ut_c2_fatfs_vfs_spi_flash' into 'master'
vfs, spi_flash: re-enable unit tests for C2

Closes IDF-5137 and IDF-5139

See merge request espressif/esp-idf!20444
2022-10-13 05:40:12 +08:00
Ivan Grokhotkov 7b709aacc9 spiffs: move tests from unit-test-app to a component test app 2022-10-12 12:08:13 +02:00
Ivan Grokhotkov 7e2f261a58 freertos, app_trace, heap: use esp_cpu_get_cycle_count to get ccount
portGET_RUN_TIME_COUNTER_VALUE should only be used in the kernel.
2022-10-12 11:20:55 +02:00
Ivan Grokhotkov 0a352a6ff2 vfs, spi_flash: re-enable unit tests for C2 2022-10-12 11:09:36 +02:00
Ivan Grokhotkov 5f6f4ef3ac Merge branch 'bugfix/build_rules_check_ignore' into 'master'
ci: ignore build_test_app when checking build_test_rules

See merge request espressif/esp-idf!20517
2022-10-10 22:28:53 +08:00
Ivan Grokhotkov 6a86614d74 fatfs: add missing readme file for the test apps 2022-10-10 12:15:56 +02:00
Ivan Grokhotkov 23e1ae1bc2 storage: fix and re-enable -Wformat warnings 2022-10-06 16:16:32 +02:00
Ivan Grokhotkov 8048d596a2 docs: remove duplicate "the" articles 2022-10-05 11:58:23 +02:00
Ivan Grokhotkov 12f4ea94aa docs: async_memcpy: use real function names in the example code 2022-10-05 11:58:22 +02:00
Ivan Grokhotkov ac830e04ac fatfs: migrate unit tests to component test app, re-enable test for C2 2022-10-04 17:39:38 +02:00
Ivan Grokhotkov 353df4f530 Merge branch 'bugfix/pytest_import_from_conftest' into 'master'
test_apps: move PanicTestDut from conftest into a separate module

See merge request espressif/esp-idf!20472
2022-10-04 21:48:19 +08:00
Ivan Grokhotkov 87ea3142ac Merge branch 'contrib/github_pr_9899' into 'master'
Make esp_app_desc a weak symbol (GitHub PR)

Closes IDFGH-8433

See merge request espressif/esp-idf!20461
2022-10-04 13:40:32 +08:00
Ivan Grokhotkov 39319c0750 test_apps: move PanicTestDut from conftest into a separate module
pytest_panic used to do 'from conftest import PanicTestDut'. This
stopped working when another conftest.py file was added in
tools/test_build_system/conftest.py.
In this case we can't rename conftest.py since both are necessary
for pytest to install the hooks in the respective test cases.
Fix by moving PanicTestDut into a separate module, then importing
it from there.
2022-10-03 21:44:28 +02:00
Ivan Grokhotkov 104f2da4c6 Merge branch 'feature/pytest_build_system' into 'master'
build system: add initial version of pytest-based build system tests

See merge request espressif/esp-idf!19498
2022-10-04 01:18:58 +08:00
Ivan Grokhotkov 6872ff1080 ci: add missing target-test jobs for sdcard and extflash examples 2022-10-03 17:15:02 +02:00
Ivan Grokhotkov 93c332155d docs: system: mention how to obtain esp_app_desc_t 2022-10-03 12:01:57 +02:00
Ivan Grokhotkov 4a69a3f7ef Merge branch 'feature/cmake_use_new_features' into 'master'
cmake: use features introduced between 3.5 and 3.16

Closes IDF-5955

See merge request espressif/esp-idf!19819
2022-09-21 11:05:06 +08:00
Ivan Grokhotkov adcf07b3b8 cmake: strip -D prefix from COMPILE_DEFINITIONS property values 2022-09-20 11:35:46 +02:00
Ivan Grokhotkov 66554aa215 cmake: remove unused defines from several host test apps
These macros are seemingly only used in the NVS host test, and are not
necessary in the other host test apps.
2022-09-20 11:35:45 +02:00
Ivan Grokhotkov c392c06216 cmake: remove -D prefix from COMPILE_DEFINITIONS property
Unlike COMPILE_OPTIONS, COMPILE_DEFINITIONS CMake property assumes
values without the -D prefix, such as NAME or NAME=VAL.
Previously, IDF build system was passing COMPILE_DEFINITIONS build
property to CMake COMPILE_OPTIONS property, so -D prefix was not
a problem.
Now that COMPILE_DEFINITIONS CMake property is used, -D prefix has
to be removed.

(Note that this doesn't affect 'target_compile_definitions' function,
which strips -D prefix before adding the definition to the property.)
2022-09-20 11:08:02 +02:00
Ivan Grokhotkov 49dedb77ac cmake: use add_compile_definitions supported since 3.12
Now that the supported CMake version is >=3.16, this code can be
simplified.
2022-09-20 11:08:02 +02:00
Ivan Grokhotkov 237b2ce40c cmake: use target_link_options and _directories supported since 3.13
Now that the supported CMake version is >=3.16, this code can be
simplified.

The code to deduplicate the directories can be removed since this is
handled by target_link_directories.
2022-09-20 11:08:02 +02:00
Ivan Grokhotkov 72b8ff7f87 cmake: use the ternary generator expressions supported since 3.8
Now that the supported CMake version is >=3.16, this code can be
simplified.
2022-09-20 11:08:02 +02:00
Ivan Grokhotkov c18b404406 Merge branch 'bugfix/tools_json_ci_deps' into 'master'
ci: trigger build jobs from changes in tools.json

See merge request espressif/esp-idf!19865
2022-09-16 21:54:25 +08:00
Ivan Grokhotkov 1406c01f3f ci: trigger build jobs from changes in tools.json 2022-09-16 10:15:29 +02:00
Ivan Grokhotkov 0503cb52eb build system: add the initial set of pytest-based build system tests 2022-09-16 00:07:55 +02:00
Ivan Grokhotkov bfc17ce35a tools: default to text output format in 'idf.py size' 2022-09-15 16:44:21 +02:00
Ivan Grokhotkov 16dbb8f249 Merge branch 'feature/ulp_binutils_multi_target' into 'master'
ulp: support the new multi-target ULP-FSM binutils

Closes IDFGH-4618

See merge request espressif/esp-idf!19818
2022-09-13 21:35:53 +08:00
Ivan Grokhotkov 45d1582d09 Merge branch 'bugfix/idf_tools_update_bundled_cert' into 'master'
tools: update bundled root certificate in idf_tools.py

See merge request espressif/esp-idf!20089
2022-09-12 22:35:02 +08:00
Ivan Grokhotkov e27e13b3dd Merge branch 'bugfix/revrt_19761' into 'master'
Revert "Merge branch 'feature/freertos_10.4.3_sync_various_functions' into 'master'"

See merge request espressif/esp-idf!20108
2022-09-12 22:12:02 +08:00
Ivan Grokhotkov 0332b8db07 Revert "Merge branch 'feature/freertos_10.4.3_sync_various_functions' into 'master'"
This reverts merge request !19761
2022-09-12 19:53:09 +08:00
Ivan Grokhotkov 80af04372b Merge branch 'bugfix/powershell_install_export_spaces' into 'master'
tools: fix {install,export}.ps1 for IDF_PATH with spaces

See merge request espressif/esp-idf!19848
2022-09-12 19:41:36 +08:00
Ivan Grokhotkov dbb64db552 Merge branch 'contrib/github_pr_9273' into 'master'
chore: Set permissions for GitHub actions

Closes IDFGH-7733

See merge request espressif/esp-idf!20098
2022-09-12 17:46:14 +08:00
Ivan Grokhotkov 89d132fe42 tools: fix {install,export}.ps1 for IDF_PATH with spaces
Usage of IDF_PATH has to be quoted in case it contains spaces.
2022-09-09 20:30:16 +02:00
Ivan Grokhotkov 5aa688ad4a tools: update bundled root certificate in idf_tools.py
dl.espressif.com is now using the same root certificate as github.com.
This commit replaces the previously-used ISRG X1 root certificate
with the DigiCert Root CA certificate.
As a result, even if the certificates are not installed (as it happens
on macOS with python.org installers, if the user forgets to run
'Install Certificates.command'), the download is successful.

Related to https://github.com/espressif/esp-idf/issues/4081
2022-09-09 17:33:33 +02:00
Ivan Grokhotkov 4d9018e925 Merge branch 'feature/ulp_cmake_cleanups' into 'master'
ulp: CMake and python cleanups

See merge request espressif/esp-idf!19817
2022-08-31 17:59:05 +08:00
Ivan Grokhotkov 5b88c6b142 console: pass esp_console_repl_universal_t pointer to the repl task
For usb_serial_jtag REPL only, xTaskCreate was passing a pointer to
esp_console_repl_com_t, while esp_console_repl_task was expecting
a pointer to esp_console_repl_universal_t.

The way the two structures are defined, this makes no difference, and
the pointer values are the same. Still, this could potentially break
in the future.

(I am not sure what is the distinction between repl_com (common?) and
repl_universal; it seems that `int uart_channel` could just as well
be part of esp_console_repl_com_t; alternatively, as suggested in the
previous commit, this structure could contain a callback function
pointer, which would allow `esp_console_new_repl_*` functions to
specify how stdin/stdout should be initialized by the REPL task.)
2022-08-30 19:37:15 +02:00
Ivan Grokhotkov c1d5717013 console: fix a crash when initializing usb_serial_jtag console
The crash occurred when calling setvbuf(stdin,...) with stdin==NULL.
This happened because esp_console_repl_task started running before
its args->uart_channel was initialized; then esp_console_repl_task
went into the code path 'uart_channel != CONFIG_ESP_CONSOLE_UART_NUM',
and tried to 'fopen("/dev/uart/0");`
Since the UART VFS is not registered when ESP_CONSOLE_USB_SERIAL_JTAG
option is enabled, fopen failed and 'stdin' was NULL.
Fix by moving the initialization of repl task arguments before the
start of the task, same as it is done for the usb_cdcacm case.

The crash started happening after the commit 287ab7566b. I haven’t
verified this, but I guess the reason why it wasn’t happening before
was that xTaskCreate was not correctly yielding to the newly created
higher-priority 'repl' task, therefore the code which was setting
the repl task arguments after xTaskCreate had time to execute.

It should be noted that the 'uart_channel' argument is a bit hacky,
in the first place. The code should be refactored to pass a callback
function to the repl task, and let this callback initialize stdin and
stdout based on the chosen console channel. Then esp_console_repl_task
does not require assumptions about the specific interface used.

Closes https://github.com/espressif/esp-idf/issues/9662
2022-08-30 19:16:51 +02:00
Ivan Grokhotkov 1ba3d58b78 tools: cmake: upgrade from 3.23.1 to 3.24.0 2022-08-30 16:38:14 +02:00
Ivan Grokhotkov 13881a3832 idf.py: ensure that build log is always sanitized from color sequences
The actual output from the build tool (CMake/Ninja) may or may not
contain color escape codes, depending on various factors. The output
written to the log file should never include color escape codes,
though. This is because color escape codes in files are usually not
rendered as "color" in editors, and complicate reading. Also escape
codes would break the regular expressions used to display hints for
compilation errors.
2022-08-30 16:38:14 +02:00
Ivan Grokhotkov d04b554065 tools: idf.py: enable CLICOLOR_FORCE for interactive builds
If stdout is a TTY (meaning that the output is not redirected), tell
the build tool (GNU Make or Ninja) to enable colorized output.

GNU Make and Ninja also check if their stdout is redirected and
strip color escape sequences in that case. CLICOLOR_FORCE environment
variable overrides this behavior.

With this change, if the compiler was launched with the
-fcolor-diagnostics flag and idf.py output is not redirected, the
final output in the terminal will be colorized.

(-fcolor-diagnostics is handled at CMake level by the previous commit)
2022-08-30 16:38:13 +02:00
Ivan Grokhotkov 56e6263350 cmake: enable CMAKE_COLOR_DIAGNOSTICS by default
Related to https://github.com/espressif/esp-idf/issues/4162

Setting this option informs CMake that it should pass
-fcolor-diagnostics flag to the compiler.

(Colorized build system output, like from GNU Make, is produced even
without this flag.)

Note that if the build is done using Ninja and the build output is
redirected (not a TTY), Ninja will still strip the escape codes from
the output. For the case of idf.py, this is handled in the next
commit.
2022-08-30 16:38:13 +02:00
Ivan Grokhotkov b548d9345e Revert "Merge branch 'feature/build_color_output' into 'master'"
This reverts merge request !19330
2022-08-30 15:14:47 +08:00
Ivan Grokhotkov 9aecfe2b9d ulp: fix typo in peripherals ld file names 2022-08-30 02:34:28 +02:00
Ivan Grokhotkov 2916bf9b6c ulp: esp32ulp_mapgen: remove the special case for RISC-V, cleanup
There are multiple changes in this commit:

1. Unify the RISC-V and ULP-FSM code paths in esp32ulp_mapgen.py.
   It seems that these were originally introduced because `nm` output
   for the RISC-V case contained symbol sizes, while for the ULP-FSM
   no symbol sizes were reported. This makes sense, because the
   ULP-FSM object files are produced from assembly source, symbol
   sizes have to be added manually using the .size directive.
   In the case of RISC-V, the object files are built from C sources
   and the sizes are automatically added by the compiler.

   Now 'posix' output format is used for both RISC-V and ULP-FSM.

2. Move BASE_ADDR out of esp32ulp_mapgen.py. This now has to be passed
   from CMake, which should make it easier to modify if a new chip
   with a different RTC RAM base address is added.

3. Add C++ guards to the generated header file.

4. Switch from optparse to argparse for similarity with other IDF
   tools.

5. Add type annotations.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov 4b03e233d0 ulp: cmake: simplify the dependency on the generated LD script
* "dummy loop to force pre-processed linker file generation" seems to
  be unnecessary. It looks like the idea was copied from the
  dependency of ULP-FSM preprocessed source files on the LD script.
* Can use add_dependencies instead of
  set_target_properties(...LINK_DEPENDS...) which is more readable
* Use target_link_options instead of target_link_libraries, which is
  supported starting from CMake 3.13. Unlike target_link_libraries,
  it doesn't require manually quoting the pats.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov 67bd7a300a ulp: cmake: add the target early, use target_* commands everywhere
Instead of collecting options in various variables, use CMake
commands like target_sources and target_link_options.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov 1a73374f82 ulp: move the expected ULP-FSM toolchain version from .mk to CMake
toolchain_ulp_version.mk is a remnant of the time when we had two
build systems, and CMake had to read the expected version from a
makefile.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov 2c5b62f10e tools: idf.py: use actual sys.stdout instead of the memoized one
This fixes the issue with build output not being colorized on Windows,
while the hints messages are colorized.

The issue occurred because sys.stdout and sys.stderr get overridden
by colorama.init() at runtime, but the default argument
output_stream=sys.stdout holds the reference to the"original"
sys.stdout.

colorama.init() (which, by the way, gets called via a curious chain
of imports, via idf_component_tools.manifest and tqdm package)
overrides standard streams, on Windows only. The overridden streams
contain logic to convert ANSI color codes into Windows Console API
calls to colorize the text.

Since read_and_write_stream function used the default value of
output_stream evaluated at module loading time, it was using the
original sys.stdout, not the one overridden by colorama.

One extra note is that while this does fix the coloring issue, the
solution is a bit fragile, as it relies on one of the following
(on Windows):
- colorama.init() is called (this can change if idf-component-manager
  stops importing tqdm)
- Sufficiently new version of Windows 10 is used, and ANSI color codes
  support is enabled in the Registry.
2022-08-30 01:30:32 +02:00
Ivan Grokhotkov b7efde18c6 Merge branch 'bugfix/vfs_build_warning' into 'master'
vfs: use recommended `esp_cpu_dbgr_is_attached` API

See merge request espressif/esp-idf!19843
2022-08-30 07:18:40 +08:00
Ivan Grokhotkov 02a19c6df5 Merge branch 'feature/build_color_output' into 'master'
build system, tools: enable compiler color diagnostics by default

Closes IDFGH-1965

See merge request espressif/esp-idf!19330
2022-08-29 20:32:42 +08:00
Ivan Grokhotkov 4f0967d44c Merge branch 'feature/update-gdb-to-11.2_20220823' into 'master'
tools: update gdb version to '11.2_20220823'

Closes IDFGH-4276 and IDF-842

See merge request espressif/esp-idf!19723
2022-08-29 19:34:40 +08:00
Ivan Grokhotkov 990681764e tools: cmake: upgrade from 3.23.1 to 3.24.0 2022-08-29 11:15:25 +02:00
Ivan Grokhotkov 712743d777 idf.py: ensure that build log is always sanitized from color sequences
The actual output from the build tool (CMake/Ninja) may or may not
contain color escape codes, depending on various factors. The output
written to the log file should never include color escape codes,
though. This is because color escape codes in files are usually not
rendered as "color" in editors, and complicate reading. Also escape
codes would break the regular expressions used to display hints for
compilation errors.
2022-08-29 11:15:16 +02:00
Ivan Grokhotkov 12abe1f316 tools: idf.py: enable CLICOLOR_FORCE for interactive builds
If stdout is a TTY (meaning that the output is not redirected), tell
the build tool (GNU Make or Ninja) to enable colorized output.

GNU Make and Ninja also check if their stdout is redirected and
strip color escape sequences in that case. CLICOLOR_FORCE environment
variable overrides this behavior.

With this change, if the compiler was launched with the
-fcolor-diagnostics flag and idf.py output is not redirected, the
final output in the terminal will be colorized.

(-fcolor-diagnostics is handled at CMake level by the previous commit)
2022-08-29 11:15:00 +02:00
Ivan Grokhotkov 41cffbb2f2 cmake: enable CMAKE_COLOR_DIAGNOSTICS by default
Related to https://github.com/espressif/esp-idf/issues/4162

Setting this option informs CMake that it should pass
-fcolor-diagnostics flag to the compiler.

(Colorized build system output, like from GNU Make, is produced even
without this flag.)

Note that if the build is done using Ninja and the build output is
redirected (not a TTY), Ninja will still strip the escape codes from
the output. For the case of idf.py, this is handled in the next
commit.
2022-08-29 11:05:15 +02:00