Azure / azure-iot-sdk-c

A C99 SDK for connecting devices to Microsoft Azure IoT services
https://azure.github.io/azure-iot-sdk-c
Other
587 stars 739 forks source link

error while building iot-c-sdk w/UTs on windows #2405

Closed JeffMill closed 1 year ago

JeffMill commented 1 year ago

Repro

git clone -b LTS_07_2022_Ref02 [https://github.com/Azure/azure-iot-sdk-c.git](https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-iot-sdk-c.git&data=05%7C01%7CJeff.Miller%40microsoft.com%7Cbb8900f11256491b37ee08dac8f72df4%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C638043261227903061%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=eagUMY8QRTpDzZ3p805qNiAV7mpMimI76aKs7JYLxqk%3D&reserved=0)
Set-Location azure-iot-sdk-c
git submodule update --init

mkdir cmake
Set-Location cmake
cmake .. -G 'Visual Studio 17 2022' -A x64 -Dbuild_provisioning_service_client=OFF -Dbuild_service_client=OFF -Duse_amqp=OFF -Duse_http=ON -Duse_mqtt=ON -Duse_wsio=ON -Drun_unittests=ON

cmake --build . -- /m /p:Configuration=Debug

Output

MSBuild version 17.4.0+18d5aef85 for .NET Framework
  Checking Build System
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/deps/azure-ctest/CMakeLists.txt
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/c-utility/testtools/micromock/CMakeLists.txt
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/deps/umock-c/CMakeLists.txt
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/deps/azure-c-testrunnerswitcher/CMakeLists.txt
  custom_hsm_example.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\provisioning_client\samples\custom_hsm_example\Debug\custom_hsm_
  example.lib
  umock_c.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\deps\umock-c\Debug\umock_c.lib
 aziotsharedutil.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\c-utility\Debug\aziotsharedutil.lib
  testmutex.c
  micromockcharstararenullterminatedstrings.cpp
  ctest.c
  parson.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\deps\parson\Debug\parson.lib
  umqtt.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\umqtt\Debug\umqtt.lib
  iothub_client_http_transport.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\iothub_client\Debug\iothub_client_http_transport.lib
  utpm.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\provisioning_client\deps\utpm\Debug\utpm.lib
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/testtools/iothub_test/CMakeLists.txt
  ctrs_sprintf.c
  hsm_security_client.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\provisioning_client\Debug\hsm_security_client.lib
  Generating Code...
  iothub_client_mqtt_transport.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\iothub_client\Debug\iothub_client_mqtt_transport.lib
  ctest_windows.c
  iothub_client_mqtt_ws_transport.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\iothub_client\Debug\iothub_client_mqtt_ws_transport
  .lib
  iothubtest.c
  Building Custom Rule C:/Users/jeffmill/Repos/azure-iot-sdk-c/c-utility/testtools/micromock/CMakeLists.txt
  prov_mqtt_transport.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\provisioning_client\Debug\prov_mqtt_transport.lib
  prov_mqtt_ws_transport.vcxproj -> C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\provisioning_client\Debug\prov_mqtt_ws_transport.lib
C:\Users\jeffmill\Repos\azure-iot-sdk-c\testtools\iothub_test\src\iothubtest.c(39,10): fatal  error C1083: Cannot open include file: 'azure_ua
mqp_c/amqp_definitions.h': No such file or directory [C:\Users\jeffmill\Repos\azure-iot-sdk-c\cmake\testtools\iothub_test\iothub_test.vcxproj]

Comment from John

ericwolz commented 1 year ago

You need to define -Duse_amqp=ON if building unit tests. We do not support all build permutations of cmake options.

JeffMill commented 1 year ago

Fine, but then build should fail in this scenario if use_amqp != ON

ericwolz commented 1 year ago

I assume you mean cmake should fail. We will consider this as a backlog work item.