как связать ресурсы - PullRequest
       42

как связать ресурсы

0 голосов
/ 22 сентября 2018

Я использую platformio с ESP8266, платой WiFi, 4M RAM, 32-битным процессором.

Веб-сайт встроен: одна страница, index.html, закодированная с xxd, вот правилов пользовательском make-файле:

src/index.html.h: index.html
    xxd -i $<                                                   $@.tmp
    sed 's/unsigned char/static const unsigned char/g' $@.tmp > $@
    sed 's/unsigned int/static const unsigned int/g'   $@     > $@.tmp
    sed 's/};/,0};/g'                                  $@.tmp > $@
    rm -f $@.tmp

Makefile используется только с симулятором для создания двоичного файла elf x86.

Я хочу сделать то же самое со сборщиком platformio, автоматически, когда ясборка для цели ESP8266.

Я добавил дополнительную директиву скрипта в platformio.ini:

[env:nodemcuv2]
extra_scripts = pre:generate_index_html_header.py
...

И написал следующий скрипт на Python:

Import("env")

def generate_index_html_header(source, target, env):
    print "Generating index html header"
    env.Execute( "make src/index.html.h" )

env.AddPreAction("generate_index_html_header", generate_index_html_header)

Itкажется, что он не выполняется, так как я не вижу следа "Генерация ..." в журнале сборки:

14:57:16 **** Incremental Build of configuration Default for project arrosage ****
platformio -f -c eclipse run 
Processing nodemcuv2 (framework: arduino; platform: espressif8266...)
---------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
SYSTEM: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder
LDF MODES: FINDER(deep+) COMPATIBILITY(soft)
Collected 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <json>
|-- <NTPClient> 3.1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/nodemcuv2/src/Activite.cpp.o
...
Archiving .pioenvs/nodemcuv2/libFrameworkArduino.a
Indexing .pioenvs/nodemcuv2/libFrameworkArduino.a
Linking .pioenvs/nodemcuv2/firmware.elf
Retrieving maximum program size .pioenvs/nodemcuv2/firmware.elf
Building .pioenvs/nodemcuv2/firmware.bin
Checking size .pioenvs/nodemcuv2/firmware.elf
Memory Usage -> 
DATA:    [======    ]  64.1% (used 52504 bytes from 81920 bytes)
PROGRAM: [===       ]  28.3% (used 295412 bytes from 1044464 bytes)
========================= [SUCCESS] Took 8.55 seconds =========================

14:57:25 Build Finished. 0 errors, 0 warnings. (took 8s.950ms)

Я уверен, что мой дополнительный сценарий на python не выполняется, потому что если явручную удалите сгенерированный файл index.html.h из файла сборки со следующей ошибкой:

src/Serveur.cpp:3:24: fatal error: index.html.h: No such file or directory
...