set(target "thermostat_brt100_${PLATFORM}_${SOFTDEVICE}")

add_executable(${target}
    "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/tuya_zigbee.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/mesh_provisionee_output_numeric.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/ctrl_led.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/ctrl_button.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/app_time_client.c"
    "${COMMON_SMARTHOME_SOURCE_DIRS}/app_thermostat.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/app_sensor.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/app_sensor_utils.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/app_dtt.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/app_scene.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/app_transition.c"
    "${CMAKE_SOURCE_DIR}/mesh/stack/src/mesh_stack.c"
    "${CMAKE_SOURCE_DIR}/examples/common/src/mesh_app_utils.c"
    # SDK start
    ${nRF5_SDK_LOG_SOURCE_FILES}
    "${SDK_ROOT}/modules/nrfx/drivers/src/nrfx_gpiote.c"
    ${nRF5_SDK_UART_SOURCE_FILES}
    # SDK end
    ${MODEL_CONFIG_FILE_SOURCE_FILES}
    ${BLE_SOFTDEVICE_SUPPORT_SOURCE_FILES}
    ${WEAK_SOURCE_FILES}
    ${MESH_CORE_SOURCE_FILES}
    ${MESH_BEARER_SOURCE_FILES}
    ${MESH_GATT_SOURCE_FILES}
    ${MESH_FRIEND_SOURCE_FILES}
    ${CONFIG_SERVER_SOURCE_FILES}
    ${HEALTH_SERVER_SOURCE_FILES}
    ${GENERIC_ONOFF_SERVER_WITH_MC_SOURCE_FILES}
    ${GENERIC_LEVEL_SERVER_WITH_MC_SOURCE_FILES}
    ${GENERIC_DTT_SERVER_WITH_MC_SOURCE_FILES}
    ${SCENE_SETUP_SERVER_SOURCE_FILES}
    ${SENSOR_SETUP_SERVER_SOURCE_FILES}
    ${SENSOR_MC_SOURCE_FILES}
    ${THERMOSTAT_SERVER_SOURCE_FILES}
    ${TIME_CLIENT_SOURCE_FILES}
    ${ACCESS_SOURCE_FILES}
    ${MESH_APP_TIMER_SOURCE_FILES}
    ${PROV_PROVISIONEE_SOURCE_FILES}
    ${PROV_COMMON_SOURCE_FILES}
    ${PROV_BEARER_ADV_SOURCE_FILES}
    ${PROV_BEARER_GATT_SOURCE_FILES}
    ${${PLATFORM}_SOURCE_FILES}
    ${${nRF5_SDK_VERSION}_SOURCE_FILES})

target_include_directories(${target} PUBLIC
    "${COMMON_SMARTHOME_INCLUDE_DIRS}"
    "${CMAKE_SOURCE_DIR}/examples/common/include"
    "${CMAKE_SOURCE_DIR}/examples/smarthome/common/include"
    ${nRF5_SDK_LOG_INCLUDE_DIRS}
    "${SDK_ROOT}/integration/nrfx/legacy"
    ${nRF5_SDK_UART_INCLUDE_DIRS}
    ${BLE_SOFTDEVICE_SUPPORT_INCLUDE_DIRS}
    ${CONFIG_SERVER_INCLUDE_DIRS}
    ${HEALTH_SERVER_INCLUDE_DIRS}
    ${GENERIC_ONOFF_SERVER_INCLUDE_DIRS}
    ${GENERIC_LEVEL_SERVER_INCLUDE_DIRS}
    ${GENERIC_DTT_SERVER_INCLUDE_DIRS}
    ${SENSOR_SETUP_SERVER_INCLUDE_DIRS}
    ${SENSOR_MC_INCLUDE_DIRS}
    ${THERMOSTAT_SERVER_INCLUDE_DIRS}
    ${TIME_CLIENT_INCLUDE_DIRS}
    ${SCENE_SETUP_SERVER_INCLUDE_DIRS}
    ${MESH_FRIEND_INCLUDE_DIRS}
    ${MESH_INCLUDE_DIRS}
    ${${SOFTDEVICE}_INCLUDE_DIRS}
    ${${PLATFORM}_INCLUDE_DIRS}
    ${${BOARD}_INCLUDE_DIRS}
    ${${nRF5_SDK_VERSION}_INCLUDE_DIRS}
    )

set_target_link_options(${target}
    ${CMAKE_CURRENT_SOURCE_DIR}/linker/${PLATFORM}_${SOFTDEVICE})

target_compile_options(${target} PUBLIC
    ${${ARCH}_DEFINES}
    )

target_compile_definitions(${target} PUBLIC
    ${USER_DEFINITIONS}
    -DUSE_APP_CONFIG
    -DCONFIG_APP_IN_CORE
    ${${PLATFORM}_DEFINES}
    ${${SOFTDEVICE}_DEFINES}
    ${${BOARD}_DEFINES})

target_link_libraries(${target}
    uECC_${PLATFORM})

create_hex(${target})
add_flash_target(${target})

get_property(target_include_dirs TARGET ${target} PROPERTY INCLUDE_DIRECTORIES)
add_pc_lint(${target}
    "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c;"
    "${target_include_dirs}"
    "${${PLATFORM}_DEFINES};${${SOFTDEVICE}_DEFINES};${${BOARD}_DEFINES};-DUSE_APP_CONFIG;-DSCENE_SETUP_SERVER_INSTANCES_MAX=1")
add_pc_lint(no_scene_${target}
    "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c;"
    "${target_include_dirs}"
    "${${PLATFORM}_DEFINES};${${SOFTDEVICE}_DEFINES};${${BOARD}_DEFINES};-DUSE_APP_CONFIG;-DSCENE_SETUP_SERVER_INSTANCES_MAX=0")

add_ses_project(${target})