#
# Copyright 2009-2017 Alibaba Cloud All rights reserved.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#      http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)

set(iot_public_header 
	include/alibabacloud/iot/IotClient.h
	include/alibabacloud/iot/IotExport.h )

set(iot_public_header_model 
	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h
	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsResult.h
	include/alibabacloud/iot/model/BatchBindDeviceToEdgeInstanceWithDriverRequest.h
	include/alibabacloud/iot/model/BatchBindDeviceToEdgeInstanceWithDriverResult.h
	include/alibabacloud/iot/model/BatchCheckDeviceNamesRequest.h
	include/alibabacloud/iot/model/BatchCheckDeviceNamesResult.h
	include/alibabacloud/iot/model/BatchClearEdgeInstanceDeviceConfigRequest.h
	include/alibabacloud/iot/model/BatchClearEdgeInstanceDeviceConfigResult.h
	include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsRequest.h
	include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsResult.h
	include/alibabacloud/iot/model/BatchGetDeviceDriverRequest.h
	include/alibabacloud/iot/model/BatchGetDeviceDriverResult.h
	include/alibabacloud/iot/model/BatchGetDeviceStateRequest.h
	include/alibabacloud/iot/model/BatchGetDeviceStateResult.h
	include/alibabacloud/iot/model/BatchGetEdgeInstanceDeviceConfigRequest.h
	include/alibabacloud/iot/model/BatchGetEdgeInstanceDeviceConfigResult.h
	include/alibabacloud/iot/model/BatchGetEdgeInstanceDriverConfigsRequest.h
	include/alibabacloud/iot/model/BatchGetEdgeInstanceDriverConfigsResult.h
	include/alibabacloud/iot/model/BatchQueryDeviceDetailRequest.h
	include/alibabacloud/iot/model/BatchQueryDeviceDetailResult.h
	include/alibabacloud/iot/model/BatchRegisterDeviceRequest.h
	include/alibabacloud/iot/model/BatchRegisterDeviceResult.h
	include/alibabacloud/iot/model/BatchRegisterDeviceWithApplyIdRequest.h
	include/alibabacloud/iot/model/BatchRegisterDeviceWithApplyIdResult.h
	include/alibabacloud/iot/model/BatchSetEdgeInstanceDeviceConfigRequest.h
	include/alibabacloud/iot/model/BatchSetEdgeInstanceDeviceConfigResult.h
	include/alibabacloud/iot/model/BatchUnbindDeviceFromEdgeInstanceRequest.h
	include/alibabacloud/iot/model/BatchUnbindDeviceFromEdgeInstanceResult.h
	include/alibabacloud/iot/model/BatchUpdateDeviceNicknameRequest.h
	include/alibabacloud/iot/model/BatchUpdateDeviceNicknameResult.h
	include/alibabacloud/iot/model/BindDriverToEdgeInstanceRequest.h
	include/alibabacloud/iot/model/BindDriverToEdgeInstanceResult.h
	include/alibabacloud/iot/model/BindGatewayToEdgeInstanceRequest.h
	include/alibabacloud/iot/model/BindGatewayToEdgeInstanceResult.h
	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsRequest.h
	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsResult.h
	include/alibabacloud/iot/model/CloseEdgeInstanceDeploymentRequest.h
	include/alibabacloud/iot/model/CloseEdgeInstanceDeploymentResult.h
	include/alibabacloud/iot/model/CreateDataAPIServiceRequest.h
	include/alibabacloud/iot/model/CreateDataAPIServiceResult.h
	include/alibabacloud/iot/model/CreateDeviceGroupRequest.h
	include/alibabacloud/iot/model/CreateDeviceGroupResult.h
	include/alibabacloud/iot/model/CreateEdgeInstanceRequest.h
	include/alibabacloud/iot/model/CreateEdgeInstanceResult.h
	include/alibabacloud/iot/model/CreateEdgeInstanceDeploymentRequest.h
	include/alibabacloud/iot/model/CreateEdgeInstanceDeploymentResult.h
	include/alibabacloud/iot/model/CreateLoRaNodesTaskRequest.h
	include/alibabacloud/iot/model/CreateLoRaNodesTaskResult.h
	include/alibabacloud/iot/model/CreateProductRequest.h
	include/alibabacloud/iot/model/CreateProductResult.h
	include/alibabacloud/iot/model/CreateProductTagsRequest.h
	include/alibabacloud/iot/model/CreateProductTagsResult.h
	include/alibabacloud/iot/model/CreateProductTopicRequest.h
	include/alibabacloud/iot/model/CreateProductTopicResult.h
	include/alibabacloud/iot/model/CreateRuleRequest.h
	include/alibabacloud/iot/model/CreateRuleResult.h
	include/alibabacloud/iot/model/CreateRuleActionRequest.h
	include/alibabacloud/iot/model/CreateRuleActionResult.h
	include/alibabacloud/iot/model/CreateTopicRouteTableRequest.h
	include/alibabacloud/iot/model/CreateTopicRouteTableResult.h
	include/alibabacloud/iot/model/DeleteDeviceRequest.h
	include/alibabacloud/iot/model/DeleteDeviceResult.h
	include/alibabacloud/iot/model/DeleteDeviceFileRequest.h
	include/alibabacloud/iot/model/DeleteDeviceFileResult.h
	include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h
	include/alibabacloud/iot/model/DeleteDeviceGroupResult.h
	include/alibabacloud/iot/model/DeleteDevicePropRequest.h
	include/alibabacloud/iot/model/DeleteDevicePropResult.h
	include/alibabacloud/iot/model/DeleteEdgeInstanceRequest.h
	include/alibabacloud/iot/model/DeleteEdgeInstanceResult.h
	include/alibabacloud/iot/model/DeleteProductRequest.h
	include/alibabacloud/iot/model/DeleteProductResult.h
	include/alibabacloud/iot/model/DeleteProductTagsRequest.h
	include/alibabacloud/iot/model/DeleteProductTagsResult.h
	include/alibabacloud/iot/model/DeleteProductTopicRequest.h
	include/alibabacloud/iot/model/DeleteProductTopicResult.h
	include/alibabacloud/iot/model/DeleteRuleRequest.h
	include/alibabacloud/iot/model/DeleteRuleResult.h
	include/alibabacloud/iot/model/DeleteRuleActionRequest.h
	include/alibabacloud/iot/model/DeleteRuleActionResult.h
	include/alibabacloud/iot/model/DeleteTopicRouteTableRequest.h
	include/alibabacloud/iot/model/DeleteTopicRouteTableResult.h
	include/alibabacloud/iot/model/DisableThingRequest.h
	include/alibabacloud/iot/model/DisableThingResult.h
	include/alibabacloud/iot/model/EnableThingRequest.h
	include/alibabacloud/iot/model/EnableThingResult.h
	include/alibabacloud/iot/model/GetDataAPIServiceDetailRequest.h
	include/alibabacloud/iot/model/GetDataAPIServiceDetailResult.h
	include/alibabacloud/iot/model/GetDeviceShadowRequest.h
	include/alibabacloud/iot/model/GetDeviceShadowResult.h
	include/alibabacloud/iot/model/GetDeviceStatusRequest.h
	include/alibabacloud/iot/model/GetDeviceStatusResult.h
	include/alibabacloud/iot/model/GetEdgeInstanceRequest.h
	include/alibabacloud/iot/model/GetEdgeInstanceResult.h
	include/alibabacloud/iot/model/GetEdgeInstanceDeploymentRequest.h
	include/alibabacloud/iot/model/GetEdgeInstanceDeploymentResult.h
	include/alibabacloud/iot/model/GetGatewayBySubDeviceRequest.h
	include/alibabacloud/iot/model/GetGatewayBySubDeviceResult.h
	include/alibabacloud/iot/model/GetLoraNodesTaskRequest.h
	include/alibabacloud/iot/model/GetLoraNodesTaskResult.h
	include/alibabacloud/iot/model/GetNodesAddingTaskRequest.h
	include/alibabacloud/iot/model/GetNodesAddingTaskResult.h
	include/alibabacloud/iot/model/GetRuleRequest.h
	include/alibabacloud/iot/model/GetRuleResult.h
	include/alibabacloud/iot/model/GetRuleActionRequest.h
	include/alibabacloud/iot/model/GetRuleActionResult.h
	include/alibabacloud/iot/model/GetThingTopoRequest.h
	include/alibabacloud/iot/model/GetThingTopoResult.h
	include/alibabacloud/iot/model/InvokeDataAPIServiceRequest.h
	include/alibabacloud/iot/model/InvokeDataAPIServiceResult.h
	include/alibabacloud/iot/model/InvokeThingServiceRequest.h
	include/alibabacloud/iot/model/InvokeThingServiceResult.h
	include/alibabacloud/iot/model/InvokeThingsServiceRequest.h
	include/alibabacloud/iot/model/InvokeThingsServiceResult.h
	include/alibabacloud/iot/model/ListProductByTagsRequest.h
	include/alibabacloud/iot/model/ListProductByTagsResult.h
	include/alibabacloud/iot/model/ListProductTagsRequest.h
	include/alibabacloud/iot/model/ListProductTagsResult.h
	include/alibabacloud/iot/model/ListRuleRequest.h
	include/alibabacloud/iot/model/ListRuleResult.h
	include/alibabacloud/iot/model/ListRuleActionsRequest.h
	include/alibabacloud/iot/model/ListRuleActionsResult.h
	include/alibabacloud/iot/model/NotifyAddThingTopoRequest.h
	include/alibabacloud/iot/model/NotifyAddThingTopoResult.h
	include/alibabacloud/iot/model/PubRequest.h
	include/alibabacloud/iot/model/PubResult.h
	include/alibabacloud/iot/model/PubBroadcastRequest.h
	include/alibabacloud/iot/model/PubBroadcastResult.h
	include/alibabacloud/iot/model/QueryAppDeviceListRequest.h
	include/alibabacloud/iot/model/QueryAppDeviceListResult.h
	include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusRequest.h
	include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusResult.h
	include/alibabacloud/iot/model/QueryDeviceRequest.h
	include/alibabacloud/iot/model/QueryDeviceResult.h
	include/alibabacloud/iot/model/QueryDeviceByDriverRequest.h
	include/alibabacloud/iot/model/QueryDeviceByDriverResult.h
	include/alibabacloud/iot/model/QueryDeviceByTagsRequest.h
	include/alibabacloud/iot/model/QueryDeviceByTagsResult.h
	include/alibabacloud/iot/model/QueryDeviceDesiredPropertyRequest.h
	include/alibabacloud/iot/model/QueryDeviceDesiredPropertyResult.h
	include/alibabacloud/iot/model/QueryDeviceDetailRequest.h
	include/alibabacloud/iot/model/QueryDeviceDetailResult.h
	include/alibabacloud/iot/model/QueryDeviceEventDataRequest.h
	include/alibabacloud/iot/model/QueryDeviceEventDataResult.h
	include/alibabacloud/iot/model/QueryDeviceFileRequest.h
	include/alibabacloud/iot/model/QueryDeviceFileResult.h
	include/alibabacloud/iot/model/QueryDeviceFileListRequest.h
	include/alibabacloud/iot/model/QueryDeviceFileListResult.h
	include/alibabacloud/iot/model/QueryDeviceGroupByDeviceRequest.h
	include/alibabacloud/iot/model/QueryDeviceGroupByDeviceResult.h
	include/alibabacloud/iot/model/QueryDeviceGroupByTagsRequest.h
	include/alibabacloud/iot/model/QueryDeviceGroupByTagsResult.h
	include/alibabacloud/iot/model/QueryDeviceGroupInfoRequest.h
	include/alibabacloud/iot/model/QueryDeviceGroupInfoResult.h
	include/alibabacloud/iot/model/QueryDeviceGroupListRequest.h
	include/alibabacloud/iot/model/QueryDeviceGroupListResult.h
	include/alibabacloud/iot/model/QueryDeviceGroupTagListRequest.h
	include/alibabacloud/iot/model/QueryDeviceGroupTagListResult.h
	include/alibabacloud/iot/model/QueryDeviceListByDeviceGroupRequest.h
	include/alibabacloud/iot/model/QueryDeviceListByDeviceGroupResult.h
	include/alibabacloud/iot/model/QueryDevicePropRequest.h
	include/alibabacloud/iot/model/QueryDevicePropResult.h
	include/alibabacloud/iot/model/QueryDevicePropertiesDataRequest.h
	include/alibabacloud/iot/model/QueryDevicePropertiesDataResult.h
	include/alibabacloud/iot/model/QueryDevicePropertyDataRequest.h
	include/alibabacloud/iot/model/QueryDevicePropertyDataResult.h
	include/alibabacloud/iot/model/QueryDevicePropertyStatusRequest.h
	include/alibabacloud/iot/model/QueryDevicePropertyStatusResult.h
	include/alibabacloud/iot/model/QueryDeviceServiceDataRequest.h
	include/alibabacloud/iot/model/QueryDeviceServiceDataResult.h
	include/alibabacloud/iot/model/QueryDeviceStatisticsRequest.h
	include/alibabacloud/iot/model/QueryDeviceStatisticsResult.h
	include/alibabacloud/iot/model/QueryEdgeInstanceRequest.h
	include/alibabacloud/iot/model/QueryEdgeInstanceResult.h
	include/alibabacloud/iot/model/QueryEdgeInstanceDeviceRequest.h
	include/alibabacloud/iot/model/QueryEdgeInstanceDeviceResult.h
	include/alibabacloud/iot/model/QueryEdgeInstanceDriverRequest.h
	include/alibabacloud/iot/model/QueryEdgeInstanceDriverResult.h
	include/alibabacloud/iot/model/QueryEdgeInstanceGatewayRequest.h
	include/alibabacloud/iot/model/QueryEdgeInstanceGatewayResult.h
	include/alibabacloud/iot/model/QueryEdgeInstanceHistoricDeploymentRequest.h
	include/alibabacloud/iot/model/QueryEdgeInstanceHistoricDeploymentResult.h
	include/alibabacloud/iot/model/QueryLoRaJoinPermissionsRequest.h
	include/alibabacloud/iot/model/QueryLoRaJoinPermissionsResult.h
	include/alibabacloud/iot/model/QueryPageByApplyIdRequest.h
	include/alibabacloud/iot/model/QueryPageByApplyIdResult.h
	include/alibabacloud/iot/model/QueryProductRequest.h
	include/alibabacloud/iot/model/QueryProductResult.h
	include/alibabacloud/iot/model/QueryProductListRequest.h
	include/alibabacloud/iot/model/QueryProductListResult.h
	include/alibabacloud/iot/model/QueryProductTopicRequest.h
	include/alibabacloud/iot/model/QueryProductTopicResult.h
	include/alibabacloud/iot/model/QuerySuperDeviceGroupRequest.h
	include/alibabacloud/iot/model/QuerySuperDeviceGroupResult.h
	include/alibabacloud/iot/model/QueryTopicReverseRouteTableRequest.h
	include/alibabacloud/iot/model/QueryTopicReverseRouteTableResult.h
	include/alibabacloud/iot/model/QueryTopicRouteTableRequest.h
	include/alibabacloud/iot/model/QueryTopicRouteTableResult.h
	include/alibabacloud/iot/model/RRpcRequest.h
	include/alibabacloud/iot/model/RRpcResult.h
	include/alibabacloud/iot/model/RegisterDeviceRequest.h
	include/alibabacloud/iot/model/RegisterDeviceResult.h
	include/alibabacloud/iot/model/RemoveThingTopoRequest.h
	include/alibabacloud/iot/model/RemoveThingTopoResult.h
	include/alibabacloud/iot/model/SaveDevicePropRequest.h
	include/alibabacloud/iot/model/SaveDevicePropResult.h
	include/alibabacloud/iot/model/SetDeviceDesiredPropertyRequest.h
	include/alibabacloud/iot/model/SetDeviceDesiredPropertyResult.h
	include/alibabacloud/iot/model/SetDeviceGroupTagsRequest.h
	include/alibabacloud/iot/model/SetDeviceGroupTagsResult.h
	include/alibabacloud/iot/model/SetDevicePropertyRequest.h
	include/alibabacloud/iot/model/SetDevicePropertyResult.h
	include/alibabacloud/iot/model/SetDevicesPropertyRequest.h
	include/alibabacloud/iot/model/SetDevicesPropertyResult.h
	include/alibabacloud/iot/model/SetEdgeInstanceDriverConfigsRequest.h
	include/alibabacloud/iot/model/SetEdgeInstanceDriverConfigsResult.h
	include/alibabacloud/iot/model/StartRuleRequest.h
	include/alibabacloud/iot/model/StartRuleResult.h
	include/alibabacloud/iot/model/StopRuleRequest.h
	include/alibabacloud/iot/model/StopRuleResult.h
	include/alibabacloud/iot/model/UnbindDriverFromEdgeInstanceRequest.h
	include/alibabacloud/iot/model/UnbindDriverFromEdgeInstanceResult.h
	include/alibabacloud/iot/model/UpdateDeviceGroupRequest.h
	include/alibabacloud/iot/model/UpdateDeviceGroupResult.h
	include/alibabacloud/iot/model/UpdateDeviceShadowRequest.h
	include/alibabacloud/iot/model/UpdateDeviceShadowResult.h
	include/alibabacloud/iot/model/UpdateEdgeInstanceRequest.h
	include/alibabacloud/iot/model/UpdateEdgeInstanceResult.h
	include/alibabacloud/iot/model/UpdateProductRequest.h
	include/alibabacloud/iot/model/UpdateProductResult.h
	include/alibabacloud/iot/model/UpdateProductTagsRequest.h
	include/alibabacloud/iot/model/UpdateProductTagsResult.h
	include/alibabacloud/iot/model/UpdateProductTopicRequest.h
	include/alibabacloud/iot/model/UpdateProductTopicResult.h
	include/alibabacloud/iot/model/UpdateRuleRequest.h
	include/alibabacloud/iot/model/UpdateRuleResult.h
	include/alibabacloud/iot/model/UpdateRuleActionRequest.h
	include/alibabacloud/iot/model/UpdateRuleActionResult.h )

set(iot_src 
	src/IotClient.cc
	src/model/BatchAddDeviceGroupRelationsRequest.cc
	src/model/BatchAddDeviceGroupRelationsResult.cc
	src/model/BatchBindDeviceToEdgeInstanceWithDriverRequest.cc
	src/model/BatchBindDeviceToEdgeInstanceWithDriverResult.cc
	src/model/BatchCheckDeviceNamesRequest.cc
	src/model/BatchCheckDeviceNamesResult.cc
	src/model/BatchClearEdgeInstanceDeviceConfigRequest.cc
	src/model/BatchClearEdgeInstanceDeviceConfigResult.cc
	src/model/BatchDeleteDeviceGroupRelationsRequest.cc
	src/model/BatchDeleteDeviceGroupRelationsResult.cc
	src/model/BatchGetDeviceDriverRequest.cc
	src/model/BatchGetDeviceDriverResult.cc
	src/model/BatchGetDeviceStateRequest.cc
	src/model/BatchGetDeviceStateResult.cc
	src/model/BatchGetEdgeInstanceDeviceConfigRequest.cc
	src/model/BatchGetEdgeInstanceDeviceConfigResult.cc
	src/model/BatchGetEdgeInstanceDriverConfigsRequest.cc
	src/model/BatchGetEdgeInstanceDriverConfigsResult.cc
	src/model/BatchQueryDeviceDetailRequest.cc
	src/model/BatchQueryDeviceDetailResult.cc
	src/model/BatchRegisterDeviceRequest.cc
	src/model/BatchRegisterDeviceResult.cc
	src/model/BatchRegisterDeviceWithApplyIdRequest.cc
	src/model/BatchRegisterDeviceWithApplyIdResult.cc
	src/model/BatchSetEdgeInstanceDeviceConfigRequest.cc
	src/model/BatchSetEdgeInstanceDeviceConfigResult.cc
	src/model/BatchUnbindDeviceFromEdgeInstanceRequest.cc
	src/model/BatchUnbindDeviceFromEdgeInstanceResult.cc
	src/model/BatchUpdateDeviceNicknameRequest.cc
	src/model/BatchUpdateDeviceNicknameResult.cc
	src/model/BindDriverToEdgeInstanceRequest.cc
	src/model/BindDriverToEdgeInstanceResult.cc
	src/model/BindGatewayToEdgeInstanceRequest.cc
	src/model/BindGatewayToEdgeInstanceResult.cc
	src/model/ClearEdgeInstanceDriverConfigsRequest.cc
	src/model/ClearEdgeInstanceDriverConfigsResult.cc
	src/model/CloseEdgeInstanceDeploymentRequest.cc
	src/model/CloseEdgeInstanceDeploymentResult.cc
	src/model/CreateDataAPIServiceRequest.cc
	src/model/CreateDataAPIServiceResult.cc
	src/model/CreateDeviceGroupRequest.cc
	src/model/CreateDeviceGroupResult.cc
	src/model/CreateEdgeInstanceRequest.cc
	src/model/CreateEdgeInstanceResult.cc
	src/model/CreateEdgeInstanceDeploymentRequest.cc
	src/model/CreateEdgeInstanceDeploymentResult.cc
	src/model/CreateLoRaNodesTaskRequest.cc
	src/model/CreateLoRaNodesTaskResult.cc
	src/model/CreateProductRequest.cc
	src/model/CreateProductResult.cc
	src/model/CreateProductTagsRequest.cc
	src/model/CreateProductTagsResult.cc
	src/model/CreateProductTopicRequest.cc
	src/model/CreateProductTopicResult.cc
	src/model/CreateRuleRequest.cc
	src/model/CreateRuleResult.cc
	src/model/CreateRuleActionRequest.cc
	src/model/CreateRuleActionResult.cc
	src/model/CreateTopicRouteTableRequest.cc
	src/model/CreateTopicRouteTableResult.cc
	src/model/DeleteDeviceRequest.cc
	src/model/DeleteDeviceResult.cc
	src/model/DeleteDeviceFileRequest.cc
	src/model/DeleteDeviceFileResult.cc
	src/model/DeleteDeviceGroupRequest.cc
	src/model/DeleteDeviceGroupResult.cc
	src/model/DeleteDevicePropRequest.cc
	src/model/DeleteDevicePropResult.cc
	src/model/DeleteEdgeInstanceRequest.cc
	src/model/DeleteEdgeInstanceResult.cc
	src/model/DeleteProductRequest.cc
	src/model/DeleteProductResult.cc
	src/model/DeleteProductTagsRequest.cc
	src/model/DeleteProductTagsResult.cc
	src/model/DeleteProductTopicRequest.cc
	src/model/DeleteProductTopicResult.cc
	src/model/DeleteRuleRequest.cc
	src/model/DeleteRuleResult.cc
	src/model/DeleteRuleActionRequest.cc
	src/model/DeleteRuleActionResult.cc
	src/model/DeleteTopicRouteTableRequest.cc
	src/model/DeleteTopicRouteTableResult.cc
	src/model/DisableThingRequest.cc
	src/model/DisableThingResult.cc
	src/model/EnableThingRequest.cc
	src/model/EnableThingResult.cc
	src/model/GetDataAPIServiceDetailRequest.cc
	src/model/GetDataAPIServiceDetailResult.cc
	src/model/GetDeviceShadowRequest.cc
	src/model/GetDeviceShadowResult.cc
	src/model/GetDeviceStatusRequest.cc
	src/model/GetDeviceStatusResult.cc
	src/model/GetEdgeInstanceRequest.cc
	src/model/GetEdgeInstanceResult.cc
	src/model/GetEdgeInstanceDeploymentRequest.cc
	src/model/GetEdgeInstanceDeploymentResult.cc
	src/model/GetGatewayBySubDeviceRequest.cc
	src/model/GetGatewayBySubDeviceResult.cc
	src/model/GetLoraNodesTaskRequest.cc
	src/model/GetLoraNodesTaskResult.cc
	src/model/GetNodesAddingTaskRequest.cc
	src/model/GetNodesAddingTaskResult.cc
	src/model/GetRuleRequest.cc
	src/model/GetRuleResult.cc
	src/model/GetRuleActionRequest.cc
	src/model/GetRuleActionResult.cc
	src/model/GetThingTopoRequest.cc
	src/model/GetThingTopoResult.cc
	src/model/InvokeDataAPIServiceRequest.cc
	src/model/InvokeDataAPIServiceResult.cc
	src/model/InvokeThingServiceRequest.cc
	src/model/InvokeThingServiceResult.cc
	src/model/InvokeThingsServiceRequest.cc
	src/model/InvokeThingsServiceResult.cc
	src/model/ListProductByTagsRequest.cc
	src/model/ListProductByTagsResult.cc
	src/model/ListProductTagsRequest.cc
	src/model/ListProductTagsResult.cc
	src/model/ListRuleRequest.cc
	src/model/ListRuleResult.cc
	src/model/ListRuleActionsRequest.cc
	src/model/ListRuleActionsResult.cc
	src/model/NotifyAddThingTopoRequest.cc
	src/model/NotifyAddThingTopoResult.cc
	src/model/PubRequest.cc
	src/model/PubResult.cc
	src/model/PubBroadcastRequest.cc
	src/model/PubBroadcastResult.cc
	src/model/QueryAppDeviceListRequest.cc
	src/model/QueryAppDeviceListResult.cc
	src/model/QueryBatchRegisterDeviceStatusRequest.cc
	src/model/QueryBatchRegisterDeviceStatusResult.cc
	src/model/QueryDeviceRequest.cc
	src/model/QueryDeviceResult.cc
	src/model/QueryDeviceByDriverRequest.cc
	src/model/QueryDeviceByDriverResult.cc
	src/model/QueryDeviceByTagsRequest.cc
	src/model/QueryDeviceByTagsResult.cc
	src/model/QueryDeviceDesiredPropertyRequest.cc
	src/model/QueryDeviceDesiredPropertyResult.cc
	src/model/QueryDeviceDetailRequest.cc
	src/model/QueryDeviceDetailResult.cc
	src/model/QueryDeviceEventDataRequest.cc
	src/model/QueryDeviceEventDataResult.cc
	src/model/QueryDeviceFileRequest.cc
	src/model/QueryDeviceFileResult.cc
	src/model/QueryDeviceFileListRequest.cc
	src/model/QueryDeviceFileListResult.cc
	src/model/QueryDeviceGroupByDeviceRequest.cc
	src/model/QueryDeviceGroupByDeviceResult.cc
	src/model/QueryDeviceGroupByTagsRequest.cc
	src/model/QueryDeviceGroupByTagsResult.cc
	src/model/QueryDeviceGroupInfoRequest.cc
	src/model/QueryDeviceGroupInfoResult.cc
	src/model/QueryDeviceGroupListRequest.cc
	src/model/QueryDeviceGroupListResult.cc
	src/model/QueryDeviceGroupTagListRequest.cc
	src/model/QueryDeviceGroupTagListResult.cc
	src/model/QueryDeviceListByDeviceGroupRequest.cc
	src/model/QueryDeviceListByDeviceGroupResult.cc
	src/model/QueryDevicePropRequest.cc
	src/model/QueryDevicePropResult.cc
	src/model/QueryDevicePropertiesDataRequest.cc
	src/model/QueryDevicePropertiesDataResult.cc
	src/model/QueryDevicePropertyDataRequest.cc
	src/model/QueryDevicePropertyDataResult.cc
	src/model/QueryDevicePropertyStatusRequest.cc
	src/model/QueryDevicePropertyStatusResult.cc
	src/model/QueryDeviceServiceDataRequest.cc
	src/model/QueryDeviceServiceDataResult.cc
	src/model/QueryDeviceStatisticsRequest.cc
	src/model/QueryDeviceStatisticsResult.cc
	src/model/QueryEdgeInstanceRequest.cc
	src/model/QueryEdgeInstanceResult.cc
	src/model/QueryEdgeInstanceDeviceRequest.cc
	src/model/QueryEdgeInstanceDeviceResult.cc
	src/model/QueryEdgeInstanceDriverRequest.cc
	src/model/QueryEdgeInstanceDriverResult.cc
	src/model/QueryEdgeInstanceGatewayRequest.cc
	src/model/QueryEdgeInstanceGatewayResult.cc
	src/model/QueryEdgeInstanceHistoricDeploymentRequest.cc
	src/model/QueryEdgeInstanceHistoricDeploymentResult.cc
	src/model/QueryLoRaJoinPermissionsRequest.cc
	src/model/QueryLoRaJoinPermissionsResult.cc
	src/model/QueryPageByApplyIdRequest.cc
	src/model/QueryPageByApplyIdResult.cc
	src/model/QueryProductRequest.cc
	src/model/QueryProductResult.cc
	src/model/QueryProductListRequest.cc
	src/model/QueryProductListResult.cc
	src/model/QueryProductTopicRequest.cc
	src/model/QueryProductTopicResult.cc
	src/model/QuerySuperDeviceGroupRequest.cc
	src/model/QuerySuperDeviceGroupResult.cc
	src/model/QueryTopicReverseRouteTableRequest.cc
	src/model/QueryTopicReverseRouteTableResult.cc
	src/model/QueryTopicRouteTableRequest.cc
	src/model/QueryTopicRouteTableResult.cc
	src/model/RRpcRequest.cc
	src/model/RRpcResult.cc
	src/model/RegisterDeviceRequest.cc
	src/model/RegisterDeviceResult.cc
	src/model/RemoveThingTopoRequest.cc
	src/model/RemoveThingTopoResult.cc
	src/model/SaveDevicePropRequest.cc
	src/model/SaveDevicePropResult.cc
	src/model/SetDeviceDesiredPropertyRequest.cc
	src/model/SetDeviceDesiredPropertyResult.cc
	src/model/SetDeviceGroupTagsRequest.cc
	src/model/SetDeviceGroupTagsResult.cc
	src/model/SetDevicePropertyRequest.cc
	src/model/SetDevicePropertyResult.cc
	src/model/SetDevicesPropertyRequest.cc
	src/model/SetDevicesPropertyResult.cc
	src/model/SetEdgeInstanceDriverConfigsRequest.cc
	src/model/SetEdgeInstanceDriverConfigsResult.cc
	src/model/StartRuleRequest.cc
	src/model/StartRuleResult.cc
	src/model/StopRuleRequest.cc
	src/model/StopRuleResult.cc
	src/model/UnbindDriverFromEdgeInstanceRequest.cc
	src/model/UnbindDriverFromEdgeInstanceResult.cc
	src/model/UpdateDeviceGroupRequest.cc
	src/model/UpdateDeviceGroupResult.cc
	src/model/UpdateDeviceShadowRequest.cc
	src/model/UpdateDeviceShadowResult.cc
	src/model/UpdateEdgeInstanceRequest.cc
	src/model/UpdateEdgeInstanceResult.cc
	src/model/UpdateProductRequest.cc
	src/model/UpdateProductResult.cc
	src/model/UpdateProductTagsRequest.cc
	src/model/UpdateProductTagsResult.cc
	src/model/UpdateProductTopicRequest.cc
	src/model/UpdateProductTopicResult.cc
	src/model/UpdateRuleRequest.cc
	src/model/UpdateRuleResult.cc
	src/model/UpdateRuleActionRequest.cc
	src/model/UpdateRuleActionResult.cc )

add_library(iot ${LIB_TYPE}
	${iot_public_header}
	${iot_public_header_model}
	${iot_src})

set_target_properties(iot
	PROPERTIES
	LINKER_LANGUAGE CXX
	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}iot
	)

if(${LIB_TYPE} STREQUAL "SHARED")
	set_target_properties(iot
		PROPERTIES
		DEFINE_SYMBOL ALIBABACLOUD_IOT_LIBRARY)
endif()

target_include_directories(iot
	PRIVATE include
		${CMAKE_SOURCE_DIR}/core/include
	)
target_link_libraries(iot
	core)

if(CMAKE_HOST_WIN32)
	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
	set(jsoncpp_install_dir ${INSTALL_DIR})
	add_dependencies(iot
		jsoncpp)
	target_include_directories(iot
		PRIVATE	${jsoncpp_install_dir}/include)
	target_link_libraries(iot
		${jsoncpp_install_dir}/lib/jsoncpp.lib)
	set_target_properties(iot
    	PROPERTIES
    		COMPILE_OPTIONS "/bigobj")
else()
	target_include_directories(iot
		PRIVATE /usr/include/jsoncpp)
	target_link_libraries(iot
		jsoncpp)
endif()

install(FILES ${iot_public_header}
	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/iot)
install(FILES ${iot_public_header_model}
	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/iot/model)
install(TARGETS iot
	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
	)