azure-iot-sdk-c/provisioning_client/CMakeLists.txt

435 строки
19 KiB
CMake

#Copyright (c) Microsoft. All rights reserved.
#Licensed under the MIT license. See LICENSE file in the project root for full license information.
cmake_minimum_required (VERSION 3.5)
compileAsC99()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_PROV_MODULE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_PROV_MODULE")
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/deps)
set(provisioning_libs)
set(provisioning_headers)
set(AUTH_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_auth_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_security_factory.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/iothub_auth_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_auth_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/iothub_security_factory.h
)
set(AUTH_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_auth_client.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_security_factory.c
${CMAKE_CURRENT_LIST_DIR}/src/iothub_auth_client.c
${CMAKE_CURRENT_LIST_DIR}/src/iothub_security_factory.c)
set(HSM_CLIENT_LIBRARY)
set(HSM_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_data.h)
set(HSM_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_data.c)
if (${hsm_type_custom})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_AUTH_TYPE_CUSTOM")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_AUTH_TYPE_CUSTOM")
set(HSM_CLIENT_LIBRARY ${CUSTOM_HSM_LIB})
elseif (${use_prov_client})
if (${run_e2e_tests})
# For e2e tests with riot, sastoken and tpm we need to run a custom HSM to handle testing
if (${hsm_type_x509})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_X509")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_X509")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_x509.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_x509.c)
endif()
if (${hsm_type_riot})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_RIOT")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_RIOT")
endif()
if (${hsm_type_sastoken})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_SAS_TOKEN")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_SAS_TOKEN")
endif()
if (${hsm_type_symm_key})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_SYMM_KEY")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_SYMM_KEY")
endif()
include_directories(${TPM_C_INC_FOLDER})
# Include the riot directories
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/DICE)
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/RIoT/Core)
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/RIoT/Core/RIoTCrypt/include)
# For e2e test a custom HSM is needed
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/tests/common_prov_e2e/prov_hsm)
if (${hsm_type_riot})
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} msr_riot utpm prov_hsm)
else()
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} utpm prov_hsm)
endif()
if (WIN32)
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} Tbs)
endif ()
else ()
if (${hsm_type_x509})
# Using x509
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_X509")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_X509")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_x509.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_x509.c)
endif()
if (${hsm_type_riot})
# Using RIoT
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_RIOT")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_RIOT")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_riot.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_riot.c)
# Include the riot directories
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/DICE)
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/RIoT/Core)
include_directories(${CMAKE_CURRENT_LIST_DIR}/deps/RIoT/Simulation/RIoT/Core/RIoTCrypt/include)
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} msr_riot)
endif()
if (${hsm_type_sastoken})
# Using Sas Token
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_SAS_TOKEN")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_SAS_TOKEN")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_tpm.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_tpm.c)
if (${use_tpm_simulator})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_EMULATOR_MODULE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_EMULATOR_MODULE")
endif()
include_directories(${TPM_C_INC_FOLDER})
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} utpm)
if (WIN32)
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} Tbs)
endif ()
endif ()
if (${hsm_type_symm_key})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_SYMM_KEY")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_SYMM_KEY")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_key.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_key.c)
endif()
endif ()
endif ()
if (${hsm_type_edge_module})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHSM_TYPE_HTTP_EDGE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHSM_TYPE_HTTP_EDGE")
set(HSM_CLIENT_H_FILES ${HSM_CLIENT_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_http_edge.h)
set(HSM_CLIENT_C_FILES ${HSM_CLIENT_C_FILES}
${CMAKE_CURRENT_LIST_DIR}/adapters/hsm_client_http_edge.c)
set(HSM_CLIENT_LIBRARY ${HSM_CLIENT_LIBRARY} uhttp)
endif()
function(link_security_client whatExeIsBuilding)
target_link_libraries(${whatExeIsBuilding} prov_auth_client)
target_link_libraries(${whatExeIsBuilding} hsm_security_client)
endfunction()
if(${use_openssl})
add_definitions(-DUSE_OPENSSL)
endif()
set(PROV_DEVICE_CLIENT_SOURCE_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_device_client.c)
set(PROV_DEVICE_CLIENT_SOURCE_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_client_const.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_device_client.h)
set(PROV_DEVICE_LL_CLIENT_SOURCE_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_device_ll_client.c)
set(PROV_DEVICE_LL_CLEINT_SOURCE_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_client_const.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_device_ll_client.h)
set(DEV_AUTH_MODULES_CLIENT_INC_FOLDER "${CMAKE_CURRENT_LIST_DIR}/inc" "${CMAKE_CURRENT_LIST_DIR}/inc/internal" CACHE INTERNAL "this is what needs to be included if using iothub_client lib" FORCE)
include_directories(${DEV_AUTH_MODULES_CLIENT_INC_FOLDER})
include_directories(${SHARED_UTIL_INC_FOLDER})
if (NOT ${use_installed_dependencies})
include_directories(${CMAKE_CURRENT_LIST_DIR}/../deps/parson)
endif()
include_directories(${UHTTP_C_INC_FOLDER})
include_directories(${IOTHUB_CLIENT_INC_FOLDER})
include_directories(${CMAKE_CURRENT_LIST_DIR}/adapters)
if(${memory_trace})
add_definitions(-DGB_MEASURE_MEMORY_FOR_THIS -DGB_DEBUG_ALLOC)
endif()
if(WIN32)
#windows needs this define
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
ENDIF(WIN32)
add_library(hsm_security_client ${HSM_CLIENT_C_FILES} ${HSM_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(hsm_security_client)
linkSharedUtil(hsm_security_client)
target_link_libraries(hsm_security_client ${HSM_CLIENT_LIBRARY})
set(provisioning_libs ${provisioning_libs} hsm_security_client)
set(provisioning_headers ${provisioning_headers} ${HSM_CLIENT_H_FILES})
add_library(prov_auth_client ${AUTH_CLIENT_C_FILES} ${AUTH_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_auth_client)
linkSharedUtil(prov_auth_client)
target_link_libraries(prov_auth_client hsm_security_client)
set(provisioning_libs ${provisioning_libs} prov_auth_client)
set(provisioning_headers ${provisioning_headers} ${AUTH_CLIENT_H_FILES})
if(${use_prov_client} OR (${use_prov_client_core} AND ${run_e2e_tests}))
add_library(prov_device_ll_client ${PROV_DEVICE_LL_CLIENT_SOURCE_C_FILES} ${PROV_DEVICE_LL_CLEINT_SOURCE_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_device_ll_client)
linkSharedUtil(prov_device_ll_client)
link_security_client(prov_device_ll_client)
set(provisioning_libs ${provisioning_libs} prov_device_ll_client)
set(provisioning_headers ${provisioning_headers} ${PROV_DEVICE_LL_CLEINT_SOURCE_H_FILES})
target_link_libraries(prov_device_ll_client parson)
add_library(prov_device_client ${PROV_DEVICE_CLIENT_SOURCE_C_FILES} ${PROV_DEVICE_CLIENT_SOURCE_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_device_client)
target_link_libraries(prov_device_client prov_device_ll_client)
set(provisioning_libs ${provisioning_libs} prov_device_client)
set(provisioning_headers ${provisioning_headers} ${PROV_DEVICE_CLIENT_SOURCE_H_FILES})
target_link_libraries(prov_device_client parson)
if (${build_as_dynamic})
add_library(prov_device_client_dll SHARED
${PROV_DEVICE_CLIENT_SOURCE_C_FILES}
${PROV_DEVICE_CLEINT_SOURCE_H_FILES}
${PROV_DEVICE_LL_CLIENT_SOURCE_C_FILES}
${PROV_DEVICE_LL_CLEINT_SOURCE_H_FILES}
${CMAKE_CURRENT_LIST_DIR}/src/prov_device_client_dll.def
)
linkSharedUtil(prov_device_client_dll)
target_link_libraries(prov_device_client_dll prov_device_ll_client parson)
if(NOT WIN32)
set_target_properties(prov_device_client_dll PROPERTIES OUTPUT_NAME "prov_device_client")
endif()
set_target_properties(prov_device_client_dll PROPERTIES
OUTPUT_NAME "prov_device_client"
ARCHIVE_OUTPUT_NAME "prov_device_client_dll_import"
ENABLE_EXPORTS YES
PDB_NAME "prov_device_client_dll"
VERSION ${PROV_SDK_VERSION}
SOVERSION ${PROV_SDK_VERSION_MAJOR}
BUILD_WITH_INSTALL_RPATH TRUE
)
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
target_link_libraries(prov_device_client_dll
"-Wl,--exclude-libs,libparson.a"
)
endif()
set(provisioning_libs ${provisioning_libs} prov_device_client_dll)
endif()
if (${use_http})
set(PROV_HTTP_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_private.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport_http_client.h)
set(PROV_HTTP_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_http_client.c)
# Provisioning http Transport Client library
add_library(prov_http_transport ${PROV_HTTP_CLIENT_C_FILES} ${PROV_HTTP_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_http_transport)
linkSharedUtil(prov_http_transport)
set(provisioning_libs ${provisioning_libs} prov_http_transport)
set(provisioning_headers ${provisioning_headers} ${PROV_HTTP_CLIENT_H_FILES})
target_link_libraries(prov_http_transport uhttp)
endif()
if (${use_amqp})
include_directories(${UAMQP_INCLUDES} ${UAMQP_INC_FOLDER})
set(PROV_AMQP_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport_amqp_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_amqp_common.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_private.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_sasl_tpm.h)
set(PROV_AMQP_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_amqp_client.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_amqp_common.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_sasl_tpm.c)
set(PROV_AMQP_WS_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport_amqp_ws_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_amqp_common.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_private.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_sasl_tpm.h)
set(PROV_AMQP_WS_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_amqp_ws_client.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_amqp_common.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_sasl_tpm.c)
add_library(prov_amqp_ws_transport ${PROV_AMQP_WS_CLIENT_C_FILES} ${PROV_AMQP_WS_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_amqp_ws_transport)
linkSharedUtil(prov_amqp_ws_transport)
target_link_libraries(prov_amqp_ws_transport uamqp)
set(provisioning_libs ${provisioning_libs} prov_amqp_ws_transport)
set(provisioning_headers ${provisioning_headers} ${PROV_AMQP_WS_CLIENT_H_FILES})
# Provisioning amqp Transport Client library
add_library(prov_amqp_transport ${PROV_AMQP_CLIENT_C_FILES} ${PROV_AMQP_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_amqp_transport)
linkSharedUtil(prov_amqp_transport)
target_link_libraries(prov_amqp_transport uamqp)
set(provisioning_libs ${provisioning_libs} prov_amqp_transport)
set(provisioning_headers ${provisioning_headers} ${PROV_AMQP_CLIENT_H_FILES})
endif()
if (${use_mqtt})
include_directories(${MQTT_INC_FOLDER})
set(PROV_MQTT_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport_mqtt_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_private.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_mqtt_common.h)
set(PROV_MQTT_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_mqtt_client.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_mqtt_common.c)
set(PROV_MQTT_WS_CLIENT_H_FILES
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/prov_transport_mqtt_ws_client.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_private.h
${CMAKE_CURRENT_LIST_DIR}/inc/azure_prov_client/internal/prov_transport_mqtt_common.h)
set(PROV_MQTT_WS_CLIENT_C_FILES
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_mqtt_ws_client.c
${CMAKE_CURRENT_LIST_DIR}/src/prov_transport_mqtt_common.c)
add_library(prov_mqtt_ws_transport ${PROV_MQTT_WS_CLIENT_C_FILES} ${PROV_MQTT_WS_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_mqtt_ws_transport)
linkSharedUtil(prov_mqtt_ws_transport)
target_link_libraries(prov_mqtt_ws_transport umqtt)
set(provisioning_libs ${provisioning_libs} prov_mqtt_ws_transport)
set(provisioning_headers ${provisioning_headers} ${PROV_MQTT_WS_CLIENT_H_FILES})
# Provisioning mqtt Transport Client library
add_library(prov_mqtt_transport ${PROV_MQTT_CLIENT_C_FILES} ${PROV_MQTT_CLIENT_H_FILES})
applyXcodeBuildFlagsIfNeeded(prov_mqtt_transport)
linkSharedUtil(prov_mqtt_transport)
target_link_libraries(prov_mqtt_transport umqtt)
set(provisioning_libs ${provisioning_libs} prov_mqtt_transport)
set(provisioning_headers ${provisioning_headers} ${PROV_MQTT_CLIENT_H_FILES})
endif()
endif()
if(NOT IN_OPENWRT)
# Disable tests for OpenWRT
add_subdirectory(tests)
endif()
if (${use_prov_client} AND (NOT ${skip_samples}))
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/samples)
add_subdirectory(tools)
endif ()
if(${use_installed_dependencies})
# Install Provisioning libs
set(package_location "${CMAKE_INSTALL_LIBDIR}/cmake/azure_prov_sdk")
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
endif()
install(TARGETS ${provisioning_libs} EXPORT azure_prov_sdksTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot
)
install(FILES ${provisioning_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot/azure_prov_client)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${PROV_SDK_VERSION}
COMPATIBILITY SameMajorVersion
)
configure_file("../configs/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
COPYONLY
)
install(EXPORT azure_prov_sdksTargets
FILE
"${PROJECT_NAME}Targets.cmake"
DESTINATION
${package_location}
)
install(
FILES
"../configs/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION
${package_location}
)
else()
# Install Provisioning libs
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
endif()
install(FILES ${provisioning_headers}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azure_prov_client)
install(TARGETS ${provisioning_libs}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
endif()