Files
TencentOS-tiny/components/connectivity/iot-hub-device-c-sdk/config/settings/iot_explorer_setting.cmake

214 lines
6.7 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###################### CONFIG #####################################
# 开启单元测试
set(CONFIG_IOT_TEST OFF)
# 开启示例编译
set(CONFIG_COMPILE_SAMPLE ON)
# 打开IOT DEBUG
set(CONFIG_IOT_DEBUG OFF)
# 代码抽取ON表示根据配置抽取源码到ouput/sdk目录
set(CONFIG_EXTRACT_SRC OFF)
# 接入认证方式使用证书认证CERT使用密钥认证KEY
set(CONFIG_AUTH_MODE "KEY")
# 接入认证是否不使用TLS证书方式必须选择使用TLS密钥认证可选择不使用TLS
set(CONFIG_AUTH_WITH_NOTLS OFF)
# 是否打开代码中获取设备信息功能OFF时将从device_info.json中读取设备信息
set(CONFIG_DEBUG_DEV_INFO_USED ON)
# 是否使能多线程
set(CONFIG_MULTITHREAD_ENABLED ON)
# 使用JSON格式上报日志 默认使用text格式
set(CONFIG_LOG_UPLOAD_TYPE_JSON ON)
# 使用AES加密上报日志
set(CONFIG_LOG_UPLOAD_AES_ENCRYPT_POST OFF)
# 是否使用动态注册功能
set(CONFIG_DEV_DYN_REG_ENABLED ON)
option(IOT_DEBUG "Enable IOT_DEBUG" ${CONFIG_IOT_DEBUG})
option(DEBUG_DEV_INFO_USED "Enable DEBUG_DEV_INFO_USED" ${CONFIG_DEBUG_DEV_INFO_USED})
option(AUTH_WITH_NO_TLS "Enable AUTH_WITH_NO_TLS" ${CONFIG_AUTH_WITH_NOTLS})
option(LOG_UPLOAD_TYPE_JSON "Enable LOG_UPLOAD_DEBUG" ${CONFIG_LOG_UPLOAD_TYPE_JSON})
option(LOG_UPLOAD_AES_ENCRYPT_POST "Log upload with AES encrypt" ${CONFIG_LOG_UPLOAD_AES_ENCRYPT_POST})
option(DEV_DYN_REG_ENABLED "Enable DEV_DYN_REG_ENABLED" ${CONFIG_DEV_DYN_REG_ENABLED})
option(MULTITHREAD_ENABLED "Enable AUTH_WITH_NO_TLS" ${CONFIG_MULTITHREAD_ENABLED})
if(${CONFIG_AUTH_MODE} STREQUAL "KEY")
option(AUTH_MODE_KEY "Enable AUTH_MODE_KEY" ON)
option(AUTH_MODE_CERT "Enable AUTH_MODE_CERT" OFF)
elseif(${CONFIG_AUTH_MODE} STREQUAL "CERT" AND ${CONFIG_AUTH_WITH_NOTLS} STREQUAL "OFF")
option(AUTH_MODE_KEY "Enable AUTH_MODE_KEY" OFF)
option(AUTH_MODE_CERT "Enable AUTH_MODE_CERT" ON)
else()
message(FATAL_ERROR "INVAILD AUTH_MODE:${FEATURE_AUTH_MODE} WITH AUTH_WITH_NO_TLS:${FEATURE_AUTH_WITH_NOTLS}!")
endif()
configure_file (
"${IOT_SDK_SOURCE_DIR}/config/settings/qcloud_iot_config.h.in"
"${IOT_SDK_SOURCE_DIR}/include/config/qcloud_iot_config.h"
@ONLY
)
# export include
include_directories(
${IOT_SDK_SOURCE_DIR}/include/
${IOT_SDK_SOURCE_DIR}/include/common
${IOT_SDK_SOURCE_DIR}/include/config
${IOT_SDK_SOURCE_DIR}/include/services/common
${IOT_SDK_SOURCE_DIR}/include/services/explorer
)
# set output path
set(LIBRARY_OUTPUT_PATH ${IOT_SDK_SOURCE_DIR}/output/libs)
set(EXECUTABLE_OUTPUT_PATH ${IOT_SDK_SOURCE_DIR}/output/bin)
# set link lib dir
link_directories(${LIBRARY_OUTPUT_PATH})
# set test src
if(${CONFIG_IOT_TEST} STREQUAL "ON")
set(src_test CACHE INTERNAL "")
set(inc_test CACHE INTERNAL "")
endif()
###################### PLATFORM MODULE #######################################
set(src_platform CACHE INTERNAL "")
set(inc_platform CACHE INTERNAL "")
add_subdirectory(${IOT_SDK_SOURCE_DIR}/platform)
# set include
include_directories(${inc_platform})
# add library libiot_platform.a
add_library(iot_platform STATIC ${src_platform})
###################### COMMON MODULE #######################################
set(src_common CACHE INTERNAL "")
set(inc_common CACHE INTERNAL "")
# mqtt packet
add_subdirectory(${IOT_SDK_SOURCE_DIR}/common/mqtt_packet)
# utils
add_subdirectory(${IOT_SDK_SOURCE_DIR}/common/utils)
# cryptology
add_subdirectory(${IOT_SDK_SOURCE_DIR}/common/cryptology)
# set include
include_directories(${inc_common})
# add library libiot_common.a
add_library(iot_common STATIC ${src_common})
###################### 3rd MODULE ####################################
# mbedtls
if(${CONFIG_AUTH_MODE} STREQUAL "KEY" )
include_directories(
${IOT_SDK_SOURCE_DIR}/3rd/mbedtls/mbedtls/include
${IOT_SDK_SOURCE_DIR}/3rd/mbedtls/port/inc
)
add_definitions("-DMBEDTLS_CONFIG_FILE=\"qcloud_iot_tls_psk_config.h\"")
endif()
if(${CONFIG_AUTH_WITH_NOTLS} STREQUAL "OFF")
# libmbedtls.a
add_subdirectory(${IOT_SDK_SOURCE_DIR}/3rd/mbedtls)
set(libsdk ${libsdk} mbedtls)
endif()
###################### SERVICE MODULE ####################################
set(src_services CACHE INTERNAL "")
set(inc_services CACHE INTERNAL "")
# mqtt client (must include except dynamic register)
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/mqtt_client)
# http client
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/http_client)
## MQTT ONLY
# 是否使能获取iot后台时间功能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/system)
# 是否使能OTA固件升级功能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/ota)
# gateway
add_subdirectory(${PROJECT_SOURCE_DIR}/services/common/gateway)
# 是否使能数据模板功能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/explorer/data_template)
# 是否系统服务
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/explorer/service_mqtt)
## HTTP ONLY
# 是否使能设备动态注册
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/dynreg)
# 是否使能COS下载功能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/cos)
# 是否使能HTTP请求腾讯云后台功能 如果开启了日志上报和动态注册 则必须要使能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/http_signed)
## HTTP & MQTT
# 是否使能日志上报云端功能
add_subdirectory(${IOT_SDK_SOURCE_DIR}/services/common/log_upload)
# set include
include_directories(${inc_services})
# add library libiot_services.a
add_library(iot_services STATIC ${src_services})
###################### UINT TEST ####################################
if(${CONFIG_IOT_TEST} STREQUAL "ON")
include_directories(${inc_test})
find_package(GTest REQUIRED)
add_executable(iot_hub_sdk_test ${src_test})
target_link_libraries(iot_hub_sdk_test ${GTEST_BOTH_LIBRARIES} ${libsdk})
setup_target_for_coverage_gcovr_html(
NAME sdk_test_coverage
EXECUTABLE iot_hub_sdk_test
DEPENDENCIES iot_hub_sdk_test
)
endif()
###################### EXTRACT ####################################
if(${CONFIG_EXTRACT_SRC} STREQUAL "ON")
file(COPY ${src_platform} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/src)
file(COPY ${inc_platform} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/inc/internal)
file(COPY ${src_common} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/src)
file(COPY ${inc_common} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/inc/internal)
file(COPY ${src_services} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/src)
file(COPY ${inc_services} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/inc/internal)
file(GLOB inc_export
${IOT_SDK_SOURCE_DIR}/include/*.h
${IOT_SDK_SOURCE_DIR}/include/common/*.h
${IOT_SDK_SOURCE_DIR}/include/config/*.h
${IOT_SDK_SOURCE_DIR}/include/services/common/*.h
${IOT_SDK_SOURCE_DIR}/include/services/explorer/*.h
)
file(COPY ${inc_export} DESTINATION ${IOT_SDK_SOURCE_DIR}/output/sdk/inc)
endif()