mirror of
https://github.com/espressif/esp32-camera.git
synced 2025-05-17 07:06:42 +08:00
114 lines
2.6 KiB
CMake
114 lines
2.6 KiB
CMake
# get IDF version for comparison
|
|
set(idf_version "${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}")
|
|
|
|
# set conversion sources
|
|
set(srcs
|
|
conversions/yuv.c
|
|
conversions/to_jpg.cpp
|
|
conversions/to_bmp.c
|
|
conversions/jpge.cpp
|
|
conversions/esp_jpg_decode.c
|
|
)
|
|
|
|
set(priv_include_dirs
|
|
conversions/private_include
|
|
)
|
|
|
|
set(include_dirs
|
|
driver/include
|
|
conversions/include
|
|
)
|
|
|
|
set(COMPONENT_REQUIRES driver)
|
|
|
|
# set driver sources only for supported platforms
|
|
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
|
|
list(APPEND srcs
|
|
driver/esp_camera.c
|
|
driver/cam_hal.c
|
|
driver/sensor.c
|
|
sensors/ov2640.c
|
|
sensors/ov3660.c
|
|
sensors/ov5640.c
|
|
sensors/ov7725.c
|
|
sensors/ov7670.c
|
|
sensors/nt99141.c
|
|
sensors/gc0308.c
|
|
sensors/gc2145.c
|
|
sensors/gc032a.c
|
|
sensors/bf3005.c
|
|
sensors/bf20a6.c
|
|
sensors/sc101iot.c
|
|
sensors/sc030iot.c
|
|
sensors/sc031gs.c
|
|
sensors/mega_ccm.c
|
|
)
|
|
|
|
list(APPEND priv_include_dirs
|
|
driver/private_include
|
|
sensors/private_include
|
|
target/private_include
|
|
)
|
|
|
|
if(IDF_TARGET STREQUAL "esp32")
|
|
list(APPEND srcs
|
|
target/xclk.c
|
|
target/esp32/ll_cam.c
|
|
)
|
|
endif()
|
|
|
|
if(IDF_TARGET STREQUAL "esp32s2")
|
|
list(APPEND srcs
|
|
target/xclk.c
|
|
target/esp32s2/ll_cam.c
|
|
target/tjpgd.c
|
|
)
|
|
|
|
list(APPEND priv_include_dirs
|
|
target/esp32s2/private_include
|
|
)
|
|
endif()
|
|
|
|
if(IDF_TARGET STREQUAL "esp32s3")
|
|
list(APPEND srcs
|
|
target/esp32s3/ll_cam.c
|
|
)
|
|
endif()
|
|
|
|
set(priv_requires freertos nvs_flash)
|
|
|
|
set(min_version_for_esp_timer "4.2")
|
|
if (idf_version VERSION_GREATER_EQUAL min_version_for_esp_timer)
|
|
list(APPEND priv_requires esp_timer)
|
|
endif()
|
|
|
|
# include the SCCB I2C driver
|
|
# this uses either the legacy I2C API or the newwer version from IDF v5.4
|
|
# as this features a method to obtain the I2C driver from a port number
|
|
if (idf_version VERSION_GREATER_EQUAL "5.4")
|
|
list(APPEND srcs driver/sccb-ng.c)
|
|
else()
|
|
list(APPEND srcs driver/sccb.c)
|
|
endif()
|
|
|
|
endif()
|
|
|
|
# CONFIG_ESP_ROM_HAS_JPEG_DECODE is available from IDF v4.4 but
|
|
# previous IDF supported chips already support JPEG decoder, hence okay to use this
|
|
if(idf_version VERSION_GREATER_EQUAL "4.4" AND NOT CONFIG_ESP_ROM_HAS_JPEG_DECODE)
|
|
list(APPEND srcs
|
|
target/tjpgd.c
|
|
)
|
|
list(APPEND priv_include_dirs
|
|
target/jpeg_include/
|
|
)
|
|
endif()
|
|
|
|
idf_component_register(
|
|
SRCS ${srcs}
|
|
INCLUDE_DIRS ${include_dirs}
|
|
PRIV_INCLUDE_DIRS ${priv_include_dirs}
|
|
REQUIRES driver # due to include of driver/gpio.h in esp_camera.h
|
|
PRIV_REQUIRES ${priv_requires}
|
|
)
|