mirror of
https://github.com/esphome/esphome.git
synced 2024-11-10 01:07:45 +01:00
Lint for ESP32S2 and ESP32C3
This commit is contained in:
parent
6db9d1122f
commit
cefa92a171
8 changed files with 189 additions and 54 deletions
|
@ -11,6 +11,12 @@ from esphome.const import (
|
||||||
CONF_VOLTAGE_ATTENUATION,
|
CONF_VOLTAGE_ATTENUATION,
|
||||||
)
|
)
|
||||||
from esphome.core import TimePeriod
|
from esphome.core import TimePeriod
|
||||||
|
from esphome.components.esp32 import get_esp32_variant
|
||||||
|
from esphome.components.esp32.const import (
|
||||||
|
VARIANT_ESP32,
|
||||||
|
VARIANT_ESP32S2,
|
||||||
|
VARIANT_ESP32S3,
|
||||||
|
)
|
||||||
|
|
||||||
AUTO_LOAD = ["binary_sensor"]
|
AUTO_LOAD = ["binary_sensor"]
|
||||||
DEPENDENCIES = ["esp32"]
|
DEPENDENCIES = ["esp32"]
|
||||||
|
@ -50,7 +56,16 @@ VOLTAGE_ATTENUATION = {
|
||||||
"0V": cg.global_ns.TOUCH_HVOLT_ATTEN_0V,
|
"0V": cg.global_ns.TOUCH_HVOLT_ATTEN_0V,
|
||||||
}
|
}
|
||||||
|
|
||||||
CONFIG_SCHEMA = cv.Schema(
|
|
||||||
|
def _validate_variant(value):
|
||||||
|
variant = get_esp32_variant()
|
||||||
|
if variant not in [VARIANT_ESP32, VARIANT_ESP32S2, VARIANT_ESP32S3]:
|
||||||
|
raise cv.Invalid(f"ESP32 variant {variant} does not support touch pads")
|
||||||
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = cv.All(
|
||||||
|
cv.Schema(
|
||||||
{
|
{
|
||||||
cv.GenerateID(): cv.declare_id(ESP32TouchComponent),
|
cv.GenerateID(): cv.declare_id(ESP32TouchComponent),
|
||||||
cv.Optional(CONF_SETUP_MODE, default=False): cv.boolean,
|
cv.Optional(CONF_SETUP_MODE, default=False): cv.boolean,
|
||||||
|
@ -73,7 +88,9 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
VOLTAGE_ATTENUATION
|
VOLTAGE_ATTENUATION
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA)
|
).extend(cv.COMPONENT_SCHEMA),
|
||||||
|
_validate_variant,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifdef USE_ESP32
|
|
||||||
|
|
||||||
#include "esp32_touch.h"
|
#include "esp32_touch.h"
|
||||||
|
#ifdef USE_ESP32_TOUCH_HAS_HARDWARE
|
||||||
|
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
#include "esphome/core/hal.h"
|
#include "esphome/core/hal.h"
|
||||||
|
|
||||||
|
@ -165,4 +165,4 @@ ESP32TouchBinarySensor::ESP32TouchBinarySensor(touch_pad_t touch_pad, uint16_t t
|
||||||
} // namespace esp32_touch
|
} // namespace esp32_touch
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
||||||
#endif
|
#endif // USE_ESP32_TOUCH_HAS_HARDWARE
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#if defined(USE_ESP32_VARIANT_ESP32) || defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
|
||||||
|
#define USE_ESP32_TOUCH_HAS_HARDWARE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_ESP32_TOUCH_HAS_HARDWARE
|
||||||
|
|
||||||
#include "esphome/core/component.h"
|
#include "esphome/core/component.h"
|
||||||
#include "esphome/components/binary_sensor/binary_sensor.h"
|
#include "esphome/components/binary_sensor/binary_sensor.h"
|
||||||
|
@ -84,4 +88,4 @@ class ESP32TouchBinarySensor : public binary_sensor::BinarySensor {
|
||||||
} // namespace esp32_touch
|
} // namespace esp32_touch
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
||||||
#endif
|
#endif // USE_ESP32_TOUCH_HAS_HARDWARE
|
||||||
|
|
|
@ -8,7 +8,7 @@ static const char *const TAG = "pulse_counter";
|
||||||
|
|
||||||
const char *const EDGE_MODE_TO_STRING[] = {"DISABLE", "INCREMENT", "DECREMENT"};
|
const char *const EDGE_MODE_TO_STRING[] = {"DISABLE", "INCREMENT", "DECREMENT"};
|
||||||
|
|
||||||
#ifdef USE_ESP8266
|
#ifndef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
void IRAM_ATTR PulseCounterStorage::gpio_intr(PulseCounterStorage *arg) {
|
void IRAM_ATTR PulseCounterStorage::gpio_intr(PulseCounterStorage *arg) {
|
||||||
const uint32_t now = micros();
|
const uint32_t now = micros();
|
||||||
const bool discard = now - arg->last_pulse < arg->filter_us;
|
const bool discard = now - arg->last_pulse < arg->filter_us;
|
||||||
|
@ -41,9 +41,9 @@ pulse_counter_t PulseCounterStorage::read_raw_value() {
|
||||||
this->last_value = counter;
|
this->last_value = counter;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif // !USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#ifdef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
bool PulseCounterStorage::pulse_counter_setup(InternalGPIOPin *pin) {
|
bool PulseCounterStorage::pulse_counter_setup(InternalGPIOPin *pin) {
|
||||||
static pcnt_unit_t next_pcnt_unit = PCNT_UNIT_0;
|
static pcnt_unit_t next_pcnt_unit = PCNT_UNIT_0;
|
||||||
this->pin = pin;
|
this->pin = pin;
|
||||||
|
@ -134,7 +134,7 @@ pulse_counter_t PulseCounterStorage::read_raw_value() {
|
||||||
this->last_value = counter;
|
this->last_value = counter;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif // USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
|
|
||||||
void PulseCounterSensor::setup() {
|
void PulseCounterSensor::setup() {
|
||||||
ESP_LOGCONFIG(TAG, "Setting up pulse counter '%s'...", this->name_.c_str());
|
ESP_LOGCONFIG(TAG, "Setting up pulse counter '%s'...", this->name_.c_str());
|
||||||
|
|
|
@ -4,7 +4,11 @@
|
||||||
#include "esphome/core/hal.h"
|
#include "esphome/core/hal.h"
|
||||||
#include "esphome/components/sensor/sensor.h"
|
#include "esphome/components/sensor/sensor.h"
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#if defined(USE_ESP32_VARIANT_ESP32) || defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
|
||||||
|
#define USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
#include <driver/pcnt.h>
|
#include <driver/pcnt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -17,10 +21,9 @@ enum PulseCounterCountMode {
|
||||||
PULSE_COUNTER_DECREMENT,
|
PULSE_COUNTER_DECREMENT,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#ifdef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
using pulse_counter_t = int16_t;
|
using pulse_counter_t = int16_t;
|
||||||
#endif
|
#else
|
||||||
#ifdef USE_ESP8266
|
|
||||||
using pulse_counter_t = int32_t;
|
using pulse_counter_t = int32_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -30,16 +33,15 @@ struct PulseCounterStorage {
|
||||||
|
|
||||||
static void gpio_intr(PulseCounterStorage *arg);
|
static void gpio_intr(PulseCounterStorage *arg);
|
||||||
|
|
||||||
#ifdef USE_ESP8266
|
#ifndef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
volatile pulse_counter_t counter{0};
|
volatile pulse_counter_t counter{0};
|
||||||
volatile uint32_t last_pulse{0};
|
volatile uint32_t last_pulse{0};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
InternalGPIOPin *pin;
|
InternalGPIOPin *pin;
|
||||||
#ifdef USE_ESP32
|
#ifdef USE_PULSE_COUNTER_ESP32_PERIPH
|
||||||
pcnt_unit_t pcnt_unit;
|
pcnt_unit_t pcnt_unit;
|
||||||
#endif
|
#else
|
||||||
#ifdef USE_ESP8266
|
|
||||||
ISRInternalGPIOPin isr_pin;
|
ISRInternalGPIOPin isr_pin;
|
||||||
#endif
|
#endif
|
||||||
PulseCounterCountMode rising_edge_mode{PULSE_COUNTER_INCREMENT};
|
PulseCounterCountMode rising_edge_mode{PULSE_COUNTER_INCREMENT};
|
||||||
|
|
|
@ -18,6 +18,12 @@ from esphome.const import (
|
||||||
UNIT_PULSES,
|
UNIT_PULSES,
|
||||||
)
|
)
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE
|
||||||
|
from esphome.components.esp32 import get_esp32_variant
|
||||||
|
from esphome.components.esp32.const import (
|
||||||
|
VARIANT_ESP32,
|
||||||
|
VARIANT_ESP32S2,
|
||||||
|
VARIANT_ESP32S3,
|
||||||
|
)
|
||||||
|
|
||||||
pulse_counter_ns = cg.esphome_ns.namespace("pulse_counter")
|
pulse_counter_ns = cg.esphome_ns.namespace("pulse_counter")
|
||||||
PulseCounterCountMode = pulse_counter_ns.enum("PulseCounterCountMode")
|
PulseCounterCountMode = pulse_counter_ns.enum("PulseCounterCountMode")
|
||||||
|
@ -33,10 +39,12 @@ PulseCounterSensor = pulse_counter_ns.class_(
|
||||||
"PulseCounterSensor", sensor.Sensor, cg.PollingComponent
|
"PulseCounterSensor", sensor.Sensor, cg.PollingComponent
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ESP32_VARIANTS_WITH_PCNT = [VARIANT_ESP32, VARIANT_ESP32S2, VARIANT_ESP32S3]
|
||||||
|
|
||||||
|
|
||||||
def validate_internal_filter(value):
|
def validate_internal_filter(value):
|
||||||
value = cv.positive_time_period_microseconds(value)
|
value = cv.positive_time_period_microseconds(value)
|
||||||
if CORE.is_esp32:
|
if CORE.is_esp32 and ESP32_VARIANTS_WITH_PCNT in get_esp32_variant():
|
||||||
if value.total_microseconds > 13:
|
if value.total_microseconds > 13:
|
||||||
raise cv.Invalid("Maximum internal filter value for ESP32 is 13us")
|
raise cv.Invalid("Maximum internal filter value for ESP32 is 13us")
|
||||||
return value
|
return value
|
||||||
|
|
|
@ -131,12 +131,14 @@ extends = common:esp32-arduino
|
||||||
build_flags =
|
build_flags =
|
||||||
${common:esp32-arduino.build_flags}
|
${common:esp32-arduino.build_flags}
|
||||||
${runtime.build_flags}
|
${runtime.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32
|
||||||
|
|
||||||
[env:esp32-tidy]
|
[env:esp32-tidy]
|
||||||
extends = common:esp32-arduino
|
extends = common:esp32-arduino
|
||||||
build_flags =
|
build_flags =
|
||||||
${common:esp32-arduino.build_flags}
|
${common:esp32-arduino.build_flags}
|
||||||
${clangtidy.build_flags}
|
${clangtidy.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32
|
||||||
|
|
||||||
[env:esp32-idf]
|
[env:esp32-idf]
|
||||||
extends = common:esp32-idf
|
extends = common:esp32-idf
|
||||||
|
@ -144,6 +146,7 @@ board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32-idf
|
||||||
build_flags =
|
build_flags =
|
||||||
${common:esp32-idf.build_flags}
|
${common:esp32-idf.build_flags}
|
||||||
${runtime.build_flags}
|
${runtime.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32
|
||||||
|
|
||||||
[env:esp32-idf-tidy]
|
[env:esp32-idf-tidy]
|
||||||
extends = common:esp32-idf
|
extends = common:esp32-idf
|
||||||
|
@ -151,3 +154,40 @@ board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32-idf-tidy
|
||||||
build_flags =
|
build_flags =
|
||||||
${common:esp32-idf.build_flags}
|
${common:esp32-idf.build_flags}
|
||||||
${clangtidy.build_flags}
|
${clangtidy.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32
|
||||||
|
|
||||||
|
[env:esp32s2-idf]
|
||||||
|
extends = common:esp32-idf
|
||||||
|
board = esp32-s2-kaluga-1
|
||||||
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s2-idf
|
||||||
|
build_flags =
|
||||||
|
${common:esp32-idf.build_flags}
|
||||||
|
${runtime.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32S2
|
||||||
|
|
||||||
|
[env:esp32s2-idf-tidy]
|
||||||
|
extends = common:esp32-idf
|
||||||
|
board = esp32-s2-kaluga-1
|
||||||
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s2-idf-tidy
|
||||||
|
build_flags =
|
||||||
|
${common:esp32-idf.build_flags}
|
||||||
|
${clangtidy.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32S2
|
||||||
|
|
||||||
|
[env:esp32c3-idf]
|
||||||
|
extends = common:esp32-idf
|
||||||
|
board = esp32-c3-devkitm-1
|
||||||
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32c3-idf
|
||||||
|
build_flags =
|
||||||
|
${common:esp32-idf.build_flags}
|
||||||
|
${runtime.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32C3
|
||||||
|
|
||||||
|
[env:esp32c3-idf-tidy]
|
||||||
|
extends = common:esp32-idf
|
||||||
|
board = esp32-c3-devkitm-1
|
||||||
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32c3-idf-tidy
|
||||||
|
build_flags =
|
||||||
|
${common:esp32-idf.build_flags}
|
||||||
|
${clangtidy.build_flags}
|
||||||
|
-DUSE_ESP32_VARIANT_ESP32C3
|
||||||
|
|
|
@ -20,7 +20,7 @@ from helpers import shlex_quote, get_output, filter_grep, \
|
||||||
build_all_include, temp_header_file, git_ls_files, filter_changed, load_idedata, basepath
|
build_all_include, temp_header_file, git_ls_files, filter_changed, load_idedata, basepath
|
||||||
|
|
||||||
|
|
||||||
def clang_options(idedata):
|
def clang_options(idedata, env_name: str):
|
||||||
cmd = [
|
cmd = [
|
||||||
# target 32-bit arch (this prevents size mismatch errors on a 64-bit host)
|
# target 32-bit arch (this prevents size mismatch errors on a 64-bit host)
|
||||||
'-m32',
|
'-m32',
|
||||||
|
@ -42,31 +42,95 @@ def clang_options(idedata):
|
||||||
# suppress warning about attribute cannot be applied to type
|
# suppress warning about attribute cannot be applied to type
|
||||||
# https://github.com/esp8266/Arduino/pull/8258
|
# https://github.com/esp8266/Arduino/pull/8258
|
||||||
'-Ddeprecated(x)=',
|
'-Ddeprecated(x)=',
|
||||||
# pretend we're an Xtensa compiler, which gates some features in the headers
|
|
||||||
'-D__XTENSA__',
|
|
||||||
# allow to condition code on the presence of clang-tidy
|
# allow to condition code on the presence of clang-tidy
|
||||||
'-DCLANG_TIDY',
|
'-DCLANG_TIDY',
|
||||||
# (esp-idf) Disable this header because they use asm with registers clang-tidy doesn't know
|
|
||||||
'-D__XTENSA_API_H__',
|
|
||||||
# (esp-idf) Fix __once_callable in some libstdc++ headers
|
# (esp-idf) Fix __once_callable in some libstdc++ headers
|
||||||
'-D_GLIBCXX_HAVE_TLS',
|
'-D_GLIBCXX_HAVE_TLS',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
defines = idedata["defines"]
|
||||||
|
|
||||||
|
if 'c3' not in env_name:
|
||||||
|
cmd += [
|
||||||
|
# pretend we're an Xtensa compiler, which gates some features in the headers
|
||||||
|
'-D__XTENSA__',
|
||||||
|
# (esp-idf) Disable this header because they use asm with registers clang-tidy doesn't know
|
||||||
|
'-D__XTENSA_API_H__',
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
cmd += [
|
||||||
|
"-D_GLIBCXX_GCC_GTHR_POSIX_H",
|
||||||
|
"-D__gthread_mutex_lock(a)=0",
|
||||||
|
"-D__gthread_recursive_mutex_unlock(a)=0",
|
||||||
|
"-D__gthread_recursive_mutex_trylock(a)=0",
|
||||||
|
"-D__gthread_recursive_mutex_destroy(a)=0",
|
||||||
|
"-D__gthread_recursive_mutex_lock(a)=0",
|
||||||
|
"-D__gthread_recursive_mutex_timedlock(a,b)=0",
|
||||||
|
"-D__gthread_recursive_mutex_t=int",
|
||||||
|
"-D__gthread_mutex_t=int",
|
||||||
|
"-D__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION(a)=0",
|
||||||
|
"-D__GTHREAD_MUTEX_INIT_FUNCTION(a)=0",
|
||||||
|
"-D__gthread_mutex_destroy(a)=0",
|
||||||
|
"-D__gthread_mutex_trylock(a)=0",
|
||||||
|
"-D__gthread_mutex_unlock(a)=0",
|
||||||
|
"-D__gthread_mutex_timedlock(a,b)=0",
|
||||||
|
"-D__gthread_time_t=struct timespec",
|
||||||
|
"-D__gthread_once_t=int",
|
||||||
|
"-D__gthread_once(a,b)=0",
|
||||||
|
"-D__GTHREAD_ONCE_INIT=0",
|
||||||
|
]
|
||||||
|
|
||||||
# copy compiler flags, except those clang doesn't understand.
|
# copy compiler flags, except those clang doesn't understand.
|
||||||
cmd.extend(flag for flag in idedata['cxx_flags'].split(' ')
|
cmd.extend(flag for flag in idedata['cxx_flags'].split(' ')
|
||||||
if flag not in ('-free', '-fipa-pta', '-fstrict-volatile-bitfields',
|
if flag not in ('-free', '-fipa-pta', '-fstrict-volatile-bitfields',
|
||||||
'-mlongcalls', '-mtext-section-literals',
|
'-mlongcalls', '-mtext-section-literals',
|
||||||
'-mfix-esp32-psram-cache-issue', '-mfix-esp32-psram-cache-strategy=memw'))
|
'-mfix-esp32-psram-cache-issue', '-mfix-esp32-psram-cache-strategy=memw',
|
||||||
|
'-march=rv32imc'))
|
||||||
|
|
||||||
# defines
|
# defines
|
||||||
cmd.extend(f'-D{define}' for define in idedata['defines'])
|
cmd.extend(f'-D{define}' for define in defines)
|
||||||
|
|
||||||
# add include directories, using -isystem for dependencies to suppress their errors
|
# add include directories, using -isystem for dependencies to suppress their errors
|
||||||
for directory in idedata['includes']['toolchain']:
|
system_includes = idedata['includes']['toolchain']
|
||||||
if 'xtensa-esp32s2-elf' not in directory:
|
|
||||||
cmd.extend(['-isystem', directory])
|
# if esp32s2 or esp32c3 were installed on the computer at _any_ time
|
||||||
|
# the toolchain includes will contain the headers, even if the env
|
||||||
|
# is not based on those chips
|
||||||
|
variant_toolchains = {
|
||||||
|
"USE_ESP32_VARIANT_ESP32": "toolchain-xtensa32",
|
||||||
|
"USE_ESP32_VARIANT_ESP32S2": "toolchain-xtensa32s2",
|
||||||
|
"USE_ESP32_VARIANT_ESP32C3": "toolchain-riscv-esp",
|
||||||
|
}
|
||||||
|
for variant_define in variant_toolchains:
|
||||||
|
if variant_define not in defines:
|
||||||
|
continue
|
||||||
|
# Filter out the other toolchains
|
||||||
|
for var, toolchain in variant_toolchains.items():
|
||||||
|
if var == variant_define:
|
||||||
|
continue
|
||||||
|
# Try to match directories like
|
||||||
|
# ~/.platformio/packages/toolchain-xtensa32@2.50200.97/...
|
||||||
|
# or ~/.platformio/packages/toolchain-xtensa32/...
|
||||||
|
# or with windows backslash paths
|
||||||
|
pattern = r".*[/\\]{}[/\\@].*".format(toolchain)
|
||||||
|
system_includes = [
|
||||||
|
inc for inc in system_includes
|
||||||
|
if re.match(pattern, inc) is None
|
||||||
|
]
|
||||||
|
|
||||||
|
for inc in system_includes:
|
||||||
|
cmd.extend(['-isystem', inc])
|
||||||
|
|
||||||
for directory in sorted(set(idedata['includes']['build'])):
|
for directory in sorted(set(idedata['includes']['build'])):
|
||||||
dependency = "framework-arduino" in directory or "/libdeps/" in directory
|
dependency = any(x in directory for x in [
|
||||||
|
"framework-arduino",
|
||||||
|
"framework-espidf",
|
||||||
|
"/libdeps/",
|
||||||
|
"\\libdeps\\",
|
||||||
|
# globally installed libs
|
||||||
|
"/.platformio/lib/",
|
||||||
|
"\\.platformio\\lib\\",
|
||||||
|
]) or directory.endswith("config")
|
||||||
cmd.extend(['-isystem' if dependency else '-I', directory])
|
cmd.extend(['-isystem' if dependency else '-I', directory])
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
|
@ -155,7 +219,7 @@ def main():
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
idedata = load_idedata(args.environment)
|
idedata = load_idedata(args.environment)
|
||||||
options = clang_options(idedata)
|
options = clang_options(idedata, args.environment)
|
||||||
|
|
||||||
files = []
|
files = []
|
||||||
for path in git_ls_files(['*.cpp']):
|
for path in git_ls_files(['*.cpp']):
|
||||||
|
|
Loading…
Reference in a new issue