esp-idf/components/esp_adc/CMakeLists.txt
2024-11-07 13:09:23 +01:00

69 lines
2.1 KiB
CMake

idf_build_get_property(target IDF_TARGET)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
endif()
set(includes "include" "interface" "${target}/include" "deprecated/include")
set(srcs)
if(CONFIG_SOC_ADC_SUPPORTED)
list(APPEND srcs
"adc_oneshot.c"
"adc_common.c"
"adc_cali.c"
"adc_cali_curve_fitting.c"
"deprecated/esp_adc_cal_common_legacy.c"
)
if(CONFIG_SOC_ADC_DMA_SUPPORTED)
list(APPEND srcs "adc_continuous.c")
if(CONFIG_SOC_ADC_MONITOR_SUPPORTED)
list(APPEND srcs "adc_monitor.c")
endif()
if(CONFIG_SOC_GDMA_SUPPORTED)
list(APPEND srcs "gdma/adc_dma.c")
elseif(${target} STREQUAL "esp32")
list(APPEND srcs "esp32/adc_dma.c")
elseif(${target} STREQUAL "esp32s2")
list(APPEND srcs "esp32s2/adc_dma.c")
endif()
endif()
endif()
if(CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED)
list(APPEND srcs "adc_filter.c")
endif()
# line fitting scheme
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${target}/adc_cali_line_fitting.c")
list(APPEND srcs "${target}/adc_cali_line_fitting.c")
endif()
# curve fitting scheme coefficients
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${target}/curve_fitting_coefficients.c")
list(APPEND srcs "${target}/curve_fitting_coefficients.c")
endif()
# legacy calibration driver
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deprecated/${target}/esp_adc_cal_legacy.c")
list(APPEND srcs "deprecated/${target}/esp_adc_cal_legacy.c")
endif()
set(extra_requires)
idf_build_get_property(target IDF_TARGET)
if(${target} STREQUAL "esp32")
list(APPEND extra_requires esp_driver_i2s)
endif()
if(${target} STREQUAL "esp32s2")
list(APPEND extra_requires esp_driver_spi)
endif()
list(APPEND extra_requires driver) # esp_adc depends on "driver/adc_types_legacy.h"
idf_component_register(SRCS ${srcs}
INCLUDE_DIRS ${includes}
PRIV_REQUIRES esp_driver_gpio efuse esp_pm esp_ringbuf esp_mm ${extra_requires}
LDFRAGMENTS linker.lf)