esp-idf/tools/windows/tool_setup
Ivan Grokhotkov aaf3dcbda0 tools: installer: fix quoting of IDF_TOOLS_PATH
IDF_TOOLS_PATH may contain spaces, so needs to be properly quoted.

Closes https://github.com/espressif/esp-idf/issues/3807
2019-07-22 09:29:49 +02:00
..
cmdlinerunner tools: new installer for Windows 2019-07-01 18:08:02 +02:00
.gitignore tools: new installer for Windows 2019-07-01 18:08:02 +02:00
build_installer.sh Sign IDF Tools installer with 'osslsigncode', update to V1.2 2018-10-18 09:56:16 +11:00
choice_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
cmdline_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
git_find_installed.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
git_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
idf_cmd_init.bat tools: installer: fix quoting of IDF_TOOLS_PATH 2019-07-22 09:29:49 +02:00
idf_download_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
idf_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
idf_setup.iss.inc tools: installer: fix quoting of IDF_TOOLS_PATH 2019-07-22 09:29:49 +02:00
idf_tool_setup.iss tools: add fallback tools.json for IDF v3.x 2019-07-01 18:08:02 +02:00
license.txt windows: Add License (GPL) display to IDF Tools installer 2018-10-18 09:56:16 +11:00
main.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
python_find_installed.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
python_page.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
README.md tools: new installer for Windows 2019-07-01 18:08:02 +02:00
summary.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00
tools_fallback.json tools: update idf_exe to 1.0.1 2019-07-09 14:15:09 +02:00
utils.iss.inc tools: new installer for Windows 2019-07-01 18:08:02 +02:00

ESP-IDF Tools Installer for Windows

This directory contains source files required to build the tools installer for Windows.

The installer is built using Inno Setup. At the time of writing, the installer can be built with Inno Setup version 6.0.2.

The main source file of the installer is idf_tools_setup.iss. PascalScript code is split into multiple *.iss.inc files.

Some functionality of the installer depends on additional programs:

  • Inno Download Plugin — used to download additional files during the installation.

  • 7-zip — used to extract downloaded IDF archives.

  • cmdlinerunner — a helper DLL used to run external command line programs from the installer, capture live console output, and get the exit code.

Steps required to build the installer

  • Build cmdlinerunner DLL.

    • On Linux/Mac, install mingw-w64 toolchain (i686-w64-mingw32-gcc). Then build the DLL using CMake:
      mkdir -p cmdlinerunner/build
      cd cmdlinerunner/build
      cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-i686-w64-mingw32.cmake -DCMAKE_BUILD_TYPE=Release ..
      cmake --build .
      
      This will produce cmdlinerunner.dll in the build directory.
    • On Windows, it is possible to build using Visual Studio, with CMake support installed. By default, VS produces build artifacts in some hard to find directory. You can adjust this in CmakeSettings.json file generated by VS.
  • Download 7zip.exe ("standalone console version") and put it into unzip directory (to get unzip/7za.exe).

  • Download idf_versions.txt and place it into the current directory. The installer will use it as a fallback, if it can not download idf_versions.txt at run time.

  • Create the dist directory and populate it with the tools which should be bundled with the installer. At the moment the easiest way to obtain it is to use install.sh/install.bat in IDF, and then copy the contents of $HOME/.espressif/dist directory. If the directory is empty, the installer should still work, and the tools will be downloaded during the installation.

  • Build the installer using Inno Setup Compiler: ISCC.exe idf_tools_setup.iss.

  • Obtain the signing keys, then sign Output/esp-idf-tools-setup-unsigned.exe.