-
-Option |
-Description |
-Default Value |
-
-
-UNIT_TESTING |
-Generates Unit Test for compilation. When turning this option ON, cmocka is a required dependency for compilation. After Compiling, use `ctest` to run Unit Test. |
-OFF |
-
-
-UNIT_TESTING_MOCKS |
-This option works only with GCC. It uses -ld option from linker to mock functions during unit test. This is used to test platform or HTTP functions by mocking the return values. |
-OFF |
-
-
-PRECONDITIONS |
-Turning this option OFF would remove all method contracts. This is typically for shipping libraries for production to make it as optimized as possible. |
-ON |
-
-
-TRANSPORT_CURL |
-This option requires Libcurl dependency to be available. It generates an HTTP stack with libcurl for az_http to be able to send requests thru the wire. This library would replace the no_http. |
-OFF |
-
-
-TRANSPORT_PAHO |
-This option requires paho-mqtt dependency to be available. Provides Paho MQTT support for IoT. |
-OFF |
-
-
-AZ_PLATFORM_IMPL |
-This option can be set to any of the next values: - No_value: default value is used and no_platform library is used. - "POSIX": Provides implementation for Linux and Mac systems. - "WIN32": Provides platform implementation for Windows based system - "USER": Tells cmake to use an specific implementation provided by user. When setting this option, user must provide an implementation library and set option `AZ_USER_PLATFORM_IMPL_NAME` with the name of the library (i.e. -DAZ_PLATFORM_IMPL=USER -DAZ_USER_PLATFORM_IMPL_NAME=user_platform_lib ). cmake will look for this library to link az_core |
-No_value |
-
-
-
-- ``Samples``: Storage Samples are built by default using the default PAL and HTTP adapter (see [running samples](#running-samples)). This means that running samples without building an HTTP transport adapter would throw errors like:
-
- ./blobs_client_example.exe
- Running sample with no_op HTTP implementation.
- Recompile az_core with an HTTP client implementation like CURL to see sample sending network requests.
-
- i.e. cmake -DTRANSPORT_CURL=ON ..
-
-### Consume SDK for C as Dependency with CMake
-Azure SDK for C can be automatically checked out by cmake and become a build dependency. This is done by using [FetchContent](https://cmake.org/cmake/help/v3.11/module/FetchContent.html).
-
-Using this option would skip manually getting the Azure SDK for C source code to build and installing it (or making it available from some include path). Instead, CMake would do this for us.
-
-Azure SDK for C provides a CMake module that can be copied and used for this purpose.
-
-### VSCode
-
-For convenience, you can quickly get started using [VSCode](https://code.visualstudio.com/) and the [CMake Extension by Microsoft](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools&ssr=false#overview). Included in the repo is a `settings.json` file [here](https://github.com/Azure/azure-sdk-for-c/blob/master/.vscode-config/settings.json) which the extension will use to configure a CMake project. To use it, copy the `settings.json` file from `.vscode-config` to your own `.vscode` directory. With this, you can run and debug samples and tests. Modify the variables in the file to your liking or as instructed by sample documentation and then select the following button in the extension:
-
-![VSCode CMake Config](./sdk/docs/resources/vscode_cmake_config.png)
-
-From there you can select targets to build and debug.
-
-**NOTE**: Especially on Windows, make sure you select a compiler platform version that matches the dependencies installed via VCPKG (i.e. `x64` or `x86`). Additionally, the triplet to use should be specified in the `VCPKG_DEFAULT_TRIPLET` field in `settings.json`.
-
-### Source Files (IDE, command line, etc)
-
-We have set up the repo for easy integration into other projects which don't use CMake. Two main features make this possible:
-
-- To resolve all header file relative paths, you only need to include `sdk/inc` in your project. All header files are included in the sdk with relative paths to clearly demarcate the services they belong to. A couple examples being:
-
-```c
-#include