diff --git a/AlifSemiconductor.AzureRTOS.pdsc b/AlifSemiconductor.AzureRTOS.pdsc index eab953e..ede2e27 100644 --- a/AlifSemiconductor.AzureRTOS.pdsc +++ b/AlifSemiconductor.AzureRTOS.pdsc @@ -13,54 +13,8 @@ --> - - - Update sample test apps - - - - Update B0 THREADX Sample - - Update B0 FILEX Driver and sample - - Update B0 USBX Driver and sample - - Update B0 NETX Driver and sample - - - - update sample codes - - Add SD card support - - - - Fix QA findings - - - - Update NETX Ethernet Driver - - Add USBX DCD support - - Update test application for Camera, I2S, CRC and SPI based ThermoMeter - - Add test applications for Comparator, MRAM Flash, HWSEM and Video - - Add USBX DCD support - - - - Add NETX Ethernet Driver - - Add Cloud Support packages and examples - - Add THREADX based sample device test applications - - - - Add Modem iperf demo app - - update nx utility - - - Grouped NETX Demo App - - - Added support for AzureRTOS NETX - updated URL - Move sample application as templates - - - Added support for AzureRTOS FILEX - Fixed some tags indentation - Moved AzureRTOS THREADX Code into separate folder - Fixed some Schemas validity error - - - Initial Release + + - Initial Release @@ -431,11 +385,11 @@ - + - + @@ -445,6 +399,10 @@ + + + + @@ -1342,7 +1300,7 @@ - + - + + @@ -2060,7 +2019,6 @@ - diff --git a/FILEX/driver/src/fx_sd_driver.c b/FILEX/driver/src/fx_sd_driver.c index 01b5bf3..e008bc2 100644 --- a/FILEX/driver/src/fx_sd_driver.c +++ b/FILEX/driver/src/fx_sd_driver.c @@ -20,6 +20,7 @@ ******************************************************************************/ /* Include necessary system files. */ +#include "RTE_Device.h" #include "fx_sd_driver.h" #include "fx_sd_driver_private.h" @@ -212,7 +213,7 @@ VOID _fx_sd_driver(FX_MEDIA *media_ptr) /* Perform basic initialization here... since the boot record is going to be read subsequently and again for volume name requests. */ - status = p_SD_Driver->disk_initialize(SDMMC_DEV_ID); + status = p_SD_Driver->disk_initialize(SDMMC_DEV_ID, RTE_SDC_BUS_WIDTH, RTE_SDC_DMA_SELECT); /* Check status of SD initialize. */ if (status == FX_SUCCESS) diff --git a/FILEX/samples/Demo_SD_FileX.c b/FILEX/samples/Demo_SD_FileX.c index 2c74287..862ec7a 100644 --- a/FILEX/samples/Demo_SD_FileX.c +++ b/FILEX/samples/Demo_SD_FileX.c @@ -19,21 +19,24 @@ * @Note None ******************************************************************************/ /* System Includes */ +#include "RTE_Device.h" #include "stdio.h" +#include "se_services_port.h" /* ThreadX and FileX Includes */ #include "tx_api.h" #include "fx_api.h" #include "fx_sd_driver.h" +#include "Driver_Common.h" /* include for Pin Mux config */ #include "pinconf.h" #include "RTE_Components.h" #if defined(RTE_Compiler_IO_STDOUT) #include "retarget_stdout.h" +#include "Driver_Common.h" #endif /* RTE_Compiler_IO_STDOUT */ - #define TEST_FILE "TestFile34.txt" /* Define Test Requirement */ //#define FILE_CREATE_TEST TEST_FILE @@ -53,6 +56,8 @@ TX_THREAD mySD_Thread; TX_BYTE_POOL StackPool; unsigned char *p_sdStack = NULL; uint32_t count1, count2, total_cnt=0; +uint32_t service_error_code; +uint32_t error_code = SERVICES_REQ_SUCCESS; /* Buffer for FileX FX_MEDIA sector cache. This must be large enough for at least one sector , which are typically 512 bytes in size. */ UCHAR media_memory[SD_BLK_SIZE*NUM_BLK_TEST] __attribute__((section("sd_dma_buf"))) __attribute__((aligned(32))); @@ -75,12 +80,12 @@ void mySD_Thread_entry(ULONG args) pinconf_set(PORT_7, PIN_0, PINMUX_ALTERNATE_FUNCTION_6, PADCTRL_READ_ENABLE); //cmd pinconf_set(PORT_7, PIN_1, PINMUX_ALTERNATE_FUNCTION_6, PADCTRL_READ_ENABLE); //clk pinconf_set(PORT_5, PIN_0, PINMUX_ALTERNATE_FUNCTION_7, PADCTRL_READ_ENABLE); //d0 -#ifdef SDMMC_4BIT_MODE +#if RTE_SDC_BUS_WIDTH == SDMMC_4_BIT_MODE pinconf_set(PORT_5, PIN_1, PINMUX_ALTERNATE_FUNCTION_7, PADCTRL_READ_ENABLE); //d1 pinconf_set(PORT_5, PIN_2, PINMUX_ALTERNATE_FUNCTION_7, PADCTRL_READ_ENABLE); //d2 pinconf_set(PORT_5, PIN_3, PINMUX_ALTERNATE_FUNCTION_6, PADCTRL_READ_ENABLE); //d3 #endif -#ifdef SDMMC_8BIT_MODE +#if RTE_SDC_BUS_WIDTH == SDMMC_8_BIT_MODE pinconf_set(PORT_5, PIN_4, PINMUX_ALTERNATE_FUNCTION_6, PADCTRL_READ_ENABLE); //d4 pinconf_set(PORT_5, PIN_5, PINMUX_ALTERNATE_FUNCTION_5, PADCTRL_READ_ENABLE); //d5 pinconf_set(PORT_5, PIN_6, PINMUX_ALTERNATE_FUNCTION_5, PADCTRL_READ_ENABLE); //d6 @@ -275,6 +280,18 @@ void mySD_Thread_entry(ULONG args) } printf("File R/W Test Completed!!!\n"); + error_code = SERVICES_clocks_enable_clock(se_services_s_handle, CLKEN_CLK_100M, false, &service_error_code); + if(error_code){ + printf("SE: SDMMC 100MHz clock disable = %d\n", error_code); + return; + } + + error_code = SERVICES_clocks_enable_clock(se_services_s_handle, CLKEN_USB, false, &service_error_code); + if(error_code){ + printf("SE: SDMMC 20MHz clock disable = %d\n", error_code); + return; + } + } void tx_application_define(void *first_unused_memory){ @@ -304,6 +321,22 @@ int main() } #endif + /* Initialize the SE services */ + se_services_port_init(); + + /* Enable SDMMC Clocks */ + error_code = SERVICES_clocks_enable_clock(se_services_s_handle, CLKEN_CLK_100M, true, &service_error_code); + if(error_code){ + printf("SE: SDMMC 100MHz clock enable = %d\n", error_code); + return 0; + } + + error_code = SERVICES_clocks_enable_clock(se_services_s_handle, CLKEN_USB, true, &service_error_code); + if(error_code){ + printf("SE: SDMMC 20MHz clock enable = %d\n", error_code); + return 0; + } + tx_kernel_enter(); return 0; diff --git a/License.txt b/License.txt deleted file mode 100644 index b63487b..0000000 --- a/License.txt +++ /dev/null @@ -1,131 +0,0 @@ - Alif Semiconductor Software License Agreement - ============================================= - -IMPORTANT: PLEASE READ CAREFULLY THE FOLLOWING ALIF SEMICONDUCTOR SINGAPORE -PTE. LTD. ("ALIF") SOFTWARE LICENSE AGREEMENT ("AGREEMENT"). -BY INSTALLING, COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THIS -SOFTWARE PACKAGE OR ANY PART THEREOF (AND THE RELATED DOCUMENTATION) FROM -Alif SEMICONDUCTOR, YOU AGREE ON BEHALF OF YOURSELF OR ON BEHALF OF ANY -ENTITY BY WHICH YOU ARE EMPLOYED TO BE BOUND BY THIS AGREEMENT. - -Under Alif Semiconductors' intellectual property rights and subject to -applicable licensing terms for any third-party software incorporated in this -software package and applicable Open Source Terms (as defined here below), -You may use and redistribute the Software, in source and binary forms, with -or without modification, provided that the following conditions are met: - -1. Redistributions in source form (including any additions or modifications -to or derivative works of the Software) must retain Alif's copyright notice -and all other copyright notices, this list of conditions and the following -disclaimers and terms. - -2. Redistributions in binary form, except as embedded into microcontroller -or microprocessor device manufactured by or for Alif Semiconductor, or a -software update for such device, must reproduce Alif's copyright notice, this -list of conditions and the following disclaimers and terms in the Software -and in the documentation and any other materials provided with the -distribution. - -3. Neither the name of Alif nor the names of its suppliers may be used to -endorse or promote products derived from this Software without specific prior -written permission. - -4. The Software (including any additions or modifications to or derivative -works of the Software) may only be used with and executed on Alif -Semiconductors microcontroller, integrated circuits and SOC products. - -5. Any use, reproduction, or redistribution of the Software (including any -derivative works thereof) may not be done in a manner or way that would -subject the Software to any "copyleft" license or other similar licensing -or distribution model, including any which would require the Software be -licensed under any such license. "Copyleft" license includes the GNU -General Public License, the GNU Library General Public License, the GNU -Lesser General Public License, the Affero General Public License, the -Mozilla Public License, the Common Development and Distribution License, -the Eclipse Public License, and any Creative Commons "sharealike" license. - -6. You shall comply with all laws and regulations applicable to your use, -transfer, import or export of the Software (including any derivative works -thereof), including any applicable export control law or regulation. - -Alif and its suppliers own all right, title and interest in and to the -Software, including all copies thereof. Except as provided in the preceding -section, Alif grants no licenses or other rights by implication, estoppel or -otherwise to, any patent, copyright, trademark, trade name, service mark or -other intellectual property licenses or rights of Alif. All rights not -expressly granted by Alif are hereby reserved. There are no implied rights. - -This Agreement will automatically terminate if you fail to comply with any -terms or conditions of this Agreement, including any of the above conditions. -Your license to use the Software immediately terminates if you breach this -Agreement. - -Alif may make changes to the Software, at any time without notice. Alif has -no obligation to update, support, or provide training for the Software. - -The Software may contain open source software, third party software, or other -Alif software, including any that may be identified in the Software itself or -in the files (if any) accompanying the Software as licensed separately under -the terms of another license or agreement (collectively, the "Other -Software"). The Other Software is not licensed under this Agreement. Rather, -it is licensed to you under the terms of the applicable open source licenses, -third party license or other Alif license agreements (the "Other Software -Terms"), including any that may accompany the Software. Copyrights to the -Other Software are held by copyright holders indicated in the Other Software -Terms. To the extent required by the Other Software Terms, Alif will make -such open source software available upon written request to Alif. - -ALIF PROVIDES THE SOFTWARE "AS-IS." TO THE MAXIMUM EXTENT PERMITTED BY -APPLICABLE LAW, ALIF DISCLAIMS AND EXCLUDES ALL WARRANTIES AND CONDITIONS, -WHETHER STATUTORY, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -TITLE, QUIET ENJOYMENT, ACCURACY, AND NON-INFRINGEMENT OF THIRD-PARTY RIGHTS. -The Software is not intended for use in nuclear power, military, emergency, -or medical settings or applications or any life safety, critical purpose, or -other systems or applications where the use or failure of the Software may -lead to death, bodily injury, damage to person or property or environmental -damage. You agree that you are fully responsible for any claims, costs, -damages, expenses, and attorneys' fees arising out of any such use, even if -any claim alleges that Alif was negligent regarding the design or manufacture -of the Software. - -IN NO EVENT SHALL ALIF OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR FOR ANY COST OF -COVER, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR -PROFITS, BUSINESS INTERRUPTION, OR OTHER LOSS ARISING OUT OF OR IN CONNECTION -WITH THE SOFTWARE, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -SOUNDING IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE), EVEN IF ALIF HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, -NOTWITHSTANDING ANY FAILURE OF THE ESSENTIAL PURPOSE OF THIS AGREEMENT OR ANY -LIMITED REMEDY HEREUNDER. - -If you provide Alif with any feedback, suggestions, comments, modifications, -corrections, enhancements or other input relating to the Software -("Feedback"), Alif will be free to use, disclose, reproduce, license, -distribute and otherwise exploit the Feedback in its sole discretion without -any obligations or restrictions of any kind, including without limitation, -intellectual property rights or licensing obligations. Alif has no obligation -to use any Feedback. - -The laws of the State of California and the United States govern all matters -arising out of this Agreement, excluding their conflicts of laws principles. -All disputes will be brought exclusively in the state or federal courts in -the Northern District of California, except Alif may bring an action, suit -or proceeding anywhere as needed to protect its technology and intellectual -property rights. Each party agrees that it submits to the personal -jurisdiction and venue of the state or federal courts in the Northern -District of California and waives any objections. The United Nations -Convention on Contracts for the International Sale of Goods (1980) is hereby -excluded in its entirety from Software to this Agreement. - -If any provision of this Agreement is found to be invalid, illegal or -unenforceable, the validity, legality and enforceability of any of the -remaining provisions shall not in any way be affected or impaired and a -valid, legal and enforceable provision of similar intent and economic impact -shall be substituted therefor. This Agreement sets forth the entire -understanding and agreement between you and Alif, supersedes all prior -agreements, whether written or oral, with respect to the Software, and may -be amended only in a writing signed by both parties that identifies itself -as an amendment to this Agreement. - -Rev. 10/2022 \ No newline at end of file diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.clang-format b/NETX/addons/azure_iot/azure-sdk-for-c/.clang-format deleted file mode 100644 index b3b2942..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.clang-format +++ /dev/null @@ -1,18 +0,0 @@ ---- -# We'll use defaults from the LLVM style, but with the following differences. -BasedOnStyle: LLVM -AlignAfterOpenBracket: AlwaysBreak -AlignEscapedNewlines: Left -AlignOperands: false -AlignTrailingComments: false -AllowAllParametersOfDeclarationOnNextLine: false -BinPackArguments: false -BinPackParameters: false -BreakBeforeBinaryOperators: All -BreakBeforeBraces: Allman -ColumnLimit: 100 -Cpp11BracedListStyle: false -IndentCaseLabels: true -PenaltyReturnTypeOnItsOwnLine: 300 -PointerAlignment: Left -... diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.github/CODEOWNERS b/NETX/addons/azure_iot/azure-sdk-for-c/.github/CODEOWNERS deleted file mode 100644 index 4165ecf..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.github/CODEOWNERS +++ /dev/null @@ -1,39 +0,0 @@ -# Instructions for CODEOWNERS file format and automatic build failure notifications: -# https://github.com/Azure/azure-sdk/blob/master/docs/policies/opensource.md#codeowners - -########### -# SDK -########### - -# Catch all for non-code project files -* @rickwinter @joshfree - -# SDK team -/sdk/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 - -# Samples -/samples/ @rickwinter - -# Service teams -# Core -sdk/docs/core/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 -sdk/inc/azure/core/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 -sdk/samples/core/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 -sdk/src/azure/core/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 -sdk/tests/core/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 - -# IoT -sdk/docs/iot/ @CIPop @danewalton @ericwol-msft @ewertons @hihigupt @jspaith @momuno -sdk/inc/azure/iot/ @CIPop @danewalton @ericwol-msft @ewertons @hihigupt @jspaith @momuno -sdk/samples/iot/ @CIPop @danewalton @ericwol-msft @ewertons @hihigupt @jspaith @momuno -sdk/src/azure/iot/ @CIPop @danewalton @ericwol-msft @ewertons @hihigupt @jspaith @momuno -sdk/tests/iot/ @CIPop @danewalton @ericwol-msft @ewertons @hihigupt @jspaith @momuno - -# Platform -sdk/src/azure/platform/ @ahsonkhan @antkmsft @rickwinter @vhvb1989 - -########### -# Eng Sys -########### -/eng/ @danieljurek @azure/azure-sdk-eng -/**/ci.yml @danieljurek @azure/azure-sdk-eng diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/bug_report.md b/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 13c15df..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "" -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -***Exception or Stack Trace*** -Add the exception log and stack trace if available - -**To Reproduce** -Steps to reproduce the behavior: - -***Code Snippet*** -Add the code snippet that causes the issue. - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Setup (please complete the following information):** - -- OS: [e.g. iOS] -- IDE: [e.g. IntelliJ] -- Version of the Library used - -**Additional context** -Add any other context about the problem here. - -**Information Checklist** -Please make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report - -- [ ] Bug Description Added -- [ ] Repro Steps Added -- [ ] Setup information Added diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/feature_request.md b/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 9f84f84..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: "" -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. - -**Information Checklist** -Please make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report - -- [ ] Description Added -- [ ] Expected solution specified diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/question-query-template.md b/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/question-query-template.md deleted file mode 100644 index c48f356..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.github/ISSUE_TEMPLATE/question-query-template.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Question/Query template -about: Use this template to file a question/query for the SDK team -title: "" -labels: '' -assignees: '' - ---- - -**Query/Question** -A clear and concise ask/query. - -***Why is this not a Bug or a feature Request?*** -A clear explanation of why is this not a bug or a feature request? - -**Setup (please complete the following information if applicable):** - -- OS: [e.g. iOS] -- IDE: [e.g. IntelliJ] -- Version of the Library used - - **Information Checklist** - Please make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report - -- [ ] Query Added -- [ ] Setup information Added diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/launch.json b/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/launch.json deleted file mode 100644 index 168aaf7..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/launch.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "MainTests", - "type": "gdb", - "request": "launch", - "target": "./Debug/sdk/core/core/test/cmocka/az_core_test", - "cwd": "${workspaceRoot}", - "preLaunchTask": "build" - }, - { - "name": "iotTests", - "type": "gdb", - "request": "launch", - "target": "./Debug/sdk/iot/core/test/cmocka/az_iot_test", - "cwd": "${workspaceRoot}", - "preLaunchTask": "build" - }, - { - "name": "KeyVault IT", - "type": "gdb", - "request": "launch", - "target": "./Debug/sdk/samples/keyvault/keyvault/az_keyvault_test", - "cwd": "${workspaceRoot}", - "preLaunchTask": "build" - }, - { - "name": "KeyVaultPOC", - "type": "gdb", - "request": "launch", - "target": "./Debug/sdk/samples/keyvault/keyvault/samples/keys_client_example", - "cwd": "${workspaceRoot}", - "preLaunchTask": "build", - // Add ids and secrets here to use it when debuging KeyVaultPOC - "env": { - "tenant_id": "", - "client_id": "", - "client_secret": "", - "test_uri": "" - }, - }, - { - "name": "CurlTransportTest", - "type": "gdb", - "request": "launch", - "target": "./Debug/sdk/transport_policies/curl/az_transport_curl_test", - "cwd": "${workspaceRoot}", - "preLaunchTask": "build", - } - ] -} \ No newline at end of file diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/settings.json b/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/settings.json deleted file mode 100644 index 1f52ea9..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/settings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "cmake.configureEnvironment": { - "VCPKG_ROOT": "", - "VCPKG_DEFAULT_TRIPLET": "" - }, - "cmake.configureSettings": { - "WARNINGS_AS_ERRORS" : "ON", - "TRANSPORT_CURL" : "OFF", - "UNIT_TESTING" : "OFF", - "UNIT_TESTING_MOCKS" : "OFF", - "TRANSPORT_PAHO" : "OFF", - "PRECONDITIONS" : "ON", - "LOGGING" : "ON" - }, - "cmake.debugConfig": { - "env": { - "AZ_IOT_HUB_DEVICE_ID": "", - "AZ_IOT_HUB_HOSTNAME": "", - - "AZ_IOT_PROVISIONING_ID_SCOPE": "", - "AZ_IOT_PROVISIONING_REGISTRATION_ID": "", - - "AZ_IOT_DEVICE_X509_CERT_PEM_FILE_PATH": "", - "AZ_IOT_DEVICE_X509_TRUST_PEM_FILE_PATH": "", - - "AZ_IOT_HUB_SAS_DEVICE_ID": "", - "AZ_IOT_SAS_KEY_DURATION_MINUTES": "" - } - } -} diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/tasks.json b/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/tasks.json deleted file mode 100644 index 8d22913..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/.vscode-config/tasks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "command": "cd Debug && rm -rf * && cmake -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON -DUNIT_TESTING_MOCK_ENABLED=ON .. && make" - } - ] -} \ No newline at end of file diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/CHANGELOG.md b/NETX/addons/azure_iot/azure-sdk-for-c/CHANGELOG.md deleted file mode 100644 index ccc57fc..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/CHANGELOG.md +++ /dev/null @@ -1,151 +0,0 @@ -# Release History - -## 1.0.0 (2020-09-21) - -### Breaking Changes - -- Removed `az_storage_blobs.h`, including APIs related to storage service such as `az_storage_blobs_blob_client_init()` and `az_storage_blobs_blob_upload()`, and types such as `az_storage_blobs_blob_client` and `az_storage_blobs_blob_client_options`. - - These will ship in the upcoming 1.1.0 release and will continue to be available as preview from the following branch: https://github.com/Azure/azure-sdk-for-c/tree/feature/StorageBlobs -- Updated provisioning client struct member name in `az_iot_provisioning_client_register_response` from `registration_result` to `registration_state`. -- Changed `operation_status` in `az_iot_provisioning_client_register_response` from `az_span` to `az_iot_provisioning_client_operation_status` enum. -- Removed `az_iot_provisioning_client_parse_operation_status()` from `az_iot_provisioning_client.h`. -- Renamed `az_iot_hub_client_twin_response_type` enum names: - - `AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_GET` to `AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_GET` - - `AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIES` to `AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIES` - - `AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIES` to `AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIES` -- Platform: `az_platform_clock_msec()`, and `az_platform_sleep_msec()` return `az_result`, which is `AZ_ERROR_DEPENDENCY_NOT_PROVIDED` when `az_noplatform` implementation is used. -- Moved these IoT specific result codes from `az_result.h` to `az_iot_common.h`: - - `AZ_ERROR_IOT_TOPIC_NO_MATCH` - - `AZ_ERROR_IOT_END_OF_PROPERTIES` -- Moved these IoT specific log classifications from `az_log.h` to `az_iot_common.h`: - - `AZ_LOG_MQTT_RECEIVED_TOPIC` - - `AZ_LOG_MQTT_RECEIVED_PAYLOAD` - - `AZ_LOG_IOT_RETRY` - - `AZ_LOG_IOT_SAS_TOKEN` - - `AZ_LOG_IOT_AZURERTOS` -- Removed `AZ_LOG_END_OF_LIST` log classification and `az_log_set_classifications()` from `az_log.h`. -- Renamed `az_log_set_callback()` to `az_log_set_message_callback()`. -- Removed `AZ_HTTP_STATUS_CODE_END_OF_LIST` HTTP status code and `status_codes` field from `az_http_policy_retry_options`. - -### Bug Fixes - -- Fixed [Pe188] warning from IAR when initializing structs using `{ 0 }`. - -## 1.0.0-preview.5 (2020-09-08) - -### New Features - -- Add `az_json_writer_append_json_text()` to support appending existing JSON with the JSON writer. -- Add support for system properties for IoT Hub messages to `az_iot_common.h`. -- Add new HTTP result named `AZ_ERROR_HTTP_END_OF_HEADERS` to designate the end of the headers iterated over by `az_http_response_get_next_header()`. -- Add new IoT result named `AZ_ERROR_IOT_END_OF_PROPERTIES` to designate the end of the properties iterated over by `az_iot_message_properties_next()`. -- Add `AZ_IOT_MESSAGE_PROPERTIES_USER_ID` and `AZ_IOT_MESSAGE_PROPERTIES_CREATION_TIME` helper macros. -- Add new `az_result` value `AZ_ERROR_DEPENDENCY_NOT_PROVIDED` which is returned by the HTTP adapter. - -### Breaking Changes - -- Rename `az_iot_hub_client_properties` to `az_iot_message_properties` and move it from `az_iot_hub_client.h` to `az_iot_common.h`. -- Remove `az_pair`, and its usage from `az_http_request_append_header()`, `az_http_response_get_next_header()`, and `az_iot_message_properties_next()` in favor of individual name and value `az_span` parameters. -- Remove `az_credential_client_secret` structure, and `az_credential_client_secret_init()` function. -- Remove `az_platform_atomic_compare_exchange()` from platform. -- In `az_result.h`, rename `az_failed()` to `az_result_failed()` and `az_succeeded()` to `az_result_succeeded()`. -- `az_iot_is_success_status()` renamed to `az_iot_status_succeeded()`. -- `az_iot_is_retriable_status()` renamed to `az_iot_status_retriable()`. -- `az_iot_retry_calc_delay()` renamed to `az_iot_calculate_retry_delay()`. -- `az_iot_hub_client_sas_get_password()` parameter `token_expiration_epoch_time` moved to second parameter. -- `az_iot_provisioning_client_init()` parameter `global_device_endpoint` renamed to `global_device_hostname`. -- `az_iot_provisioning_client_query_status_get_publish_topic()` now accepts the `operation_id` from the `register_response` as the second parameter instead of the whole `az_iot_provisioning_client_register_response` struct. -- Renamed the macro `AZ_SPAN_NULL` to `AZ_SPAN_EMPTY`. -- Renamed the `az_result` value `AZ_ERROR_INSUFFICIENT_SPAN_SIZE` to `AZ_ERROR_NOT_ENOUGH_SPACE`. -- Removed the helper macros `AZ_RETURN_IF_FAILED()` and `AZ_RETURN_IF_NOT_ENOUGH_SIZE()` from `az_result.h`. -- Behavioral change to disallow passing `NULL` pointers to `az_context` APIs and update documentation. -- Removed `AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_DUPLICATE` and `AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_RETAIN` named constants from `az_iot_hub_client.h`. - -### Bug Fixes - -- Fix the strict-aliasing issue in `az_span_dtoa()` and `az_span_atod()`. -- Fix the SDK warnings for the release configurations. -- Do not use a shared static scratch buffer for JSON token parsing. Instead use stack space. - -### Other Changes and Improvements - -- Refactor and update IoT samples. -- Optimize the code size for URL encoding and setting HTTP query parameters. -- Add support for building the SDK on ARM (Cortex M4) and adding it to CI. - -## 1.0.0-preview.4 (2020-08-10) - -### New Features - -- Support for writing JSON to non-contiguous buffers. -- Support for reading JSON from non-contiguous buffers. -- Add support for national cloud auth URLs. - -### Breaking Changes - -- `az_span.h`: - - `az_span_init()` is renamed to `az_span_create()`. - - `az_span_from_str()` is renamed to `az_span_create_from_str()`. - - Removed `az_pair_from_str()`. -- `az_context`: - - `key` and `value` are `const`. - - `az_context_with_expiration()` is renamed to `az_context_create_with_expiration()`. - - `az_context_with_value()` is renamed to `az_context_create_with_value()`. - - `az_context_app` is renamed to `az_context_application`. -- `az_credential_client_secret_init()` now takes fourth parameter, `authority`. -- `az_http_policy_retry_options`: - - `status_codes` now should be terminated by `AZ_HTTP_STATUS_CODE_END_OF_LIST`. - - `max_retries` is now `int32_t` instead of `int16_t`. -- `az_config.h`: - - `AZ_HTTP_REQUEST_URL_BUF_SIZE` renamed to `AZ_HTTP_REQUEST_URL_BUFFER_SIZE`. - - `AZ_HTTP_REQUEST_BODY_BUF_SIZE` renamed to `AZ_HTTP_REQUEST_BODY_BUFFER_SIZE`. - - `AZ_LOG_MSG_BUF_SIZE` renamed to `AZ_LOG_MESSAGE_BUFFER_SIZE`. -- `az_result`: - - `AZ_ERROR_HTTP_PLATFORM` renamed to `AZ_ERROR_HTTP_ADAPTER`. - - `AZ_ERROR_EOF` renamed to `AZ_ERROR_UNEXPECTED_END`. - - Removed `AZ_CONTINUE`. -- `az_storage_blobs_blob_client`: - - `retry` field renamed to `retry_options` in `az_storage_blobs_blob_client_options`. - - Moved `az_context* context` parameter from `az_storage_blobs_blob_upload()` into a public field on `az_storage_blobs_blob_upload_options`. -- `az_json_writer`: - - `az_json_writer_get_json()` is renamed to `az_json_writer_get_bytes_used_in_destination()`. - -### Bug Fixes - -- Remove support for non-finite double values while parsing/formatting. -- Use custom, portable implementation of IEEE 754 compliant `isfinite()` since some embedded platforms don't have it. -- Limit use of `sscanf` only to double parsing, using a custom implementation for {u}int{32|64} parsing because of incompatibility with `sscanf` format and the `GCC newlib-nano` implementation. - -### Other Changes and Improvements - -- Made `az_http_request` and related APIs to get URL, body, and headers, public. -- Add and update IoT samples, including DPS. -- Add samples for IoT Hub Plug and Play. - -## 1.0.0-preview.3 (2020-07-20) - -- Updated `az_result` values: - - Rename `az_result` value `AZ_ERROR_PARSER_UNEXPECTED_CHAR` to `AZ_ERROR_UNEXPECTED_CHAR`. - - Remove unused `az_result` error codes: `AZ_ERROR_JSON_STRING_END`, `AZ_ERROR_JSON_POINTER_TOKEN_END`, and `AZ_ERROR_MUTEX`. -- Add permutations of numeric type parsing and formatting APIs on span - ato[u|i][32|64], atod and the inverse [u|i][32|64]toa, dtoa. -- Updates to the JSON APIs: - - Rename JSON parser/builder APIs to reader/writer. - - Add double parsing and formatting support to JSON reader and JSON writer. - - Redesign JSON reader and JSON token APIs with lazy evaluation of tokens, proper unescaping support, and hardened validation. -- Update samples, README docs along with deep dive video, and VSCode and CMake instructions. - - Add PnP sample for Azure IoT Hub. -- Add log classification for the IoT convenience layer. -- Fixed SAS token generation by URL-encoding the components. -- Rename the http response function `az_http_response_write_span` to `az_http_response_append`. -- Add thread safety for client secret credential. -- Transform `apply_credential` into an HTTP policy. -- Default behavior for failed preconditions changed to infinite loop instead of thread sleep. - -## 1.0.0-preview.2 (2020-05-18) - -- Update top-level CMakeLists.txt to only add subdirectory for specified platform. -- Add compilation option to remove all logging from SDK code. - -## 1.0.0-preview.1 (2020-05-12) - -Initial release. Please see the [README](https://github.com/Azure/azure-sdk-for-c/blob/master/README.md) for more information. diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/CMakeLists.txt b/NETX/addons/azure_iot/azure-sdk-for-c/CMakeLists.txt deleted file mode 100644 index a649071..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/CMakeLists.txt +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT - -cmake_minimum_required (VERSION 3.10) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake-modules") - -option(WARNINGS_AS_ERRORS "Treat compiler warnings as errors" ON) -option(TRANSPORT_CURL "Build internal http transport implementation with CURL for HTTP Pipeline" OFF) -option(UNIT_TESTING "Build unit test projects" OFF) -option(UNIT_TESTING_MOCKS "wrap PAL functions with mock implementation for tests" OFF) -option(TRANSPORT_PAHO "Build IoT Samples with Paho MQTT support" OFF) -option(PRECONDITIONS "Build SDK with preconditions enabled" ON) -option(LOGGING "Build SDK with logging support" ON) - -# disable preconditions when it's set to OFF -if (NOT PRECONDITIONS) - add_compile_definitions(AZ_NO_PRECONDITION_CHECKING) -endif() - -if (NOT LOGGING) - add_compile_definitions(AZ_NO_LOGGING) -endif() - -# enable mock functions with link option -ld -if(UNIT_TESTING_MOCKS) - add_compile_definitions(_az_MOCK_ENABLED) -endif() - -# make libcurl option enabled to be visible to code -if(TRANSPORT_CURL) - add_compile_definitions(TRANSPORT_CURL) -endif() - -if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) - set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" - CACHE STRING "") -elseif(DEFINED ENV{VCPKG_INSTALLATION_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) - set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" - CACHE STRING "") -endif() - -if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET) - set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "") -endif() - -project(az LANGUAGES C) -enable_testing () - -include(eng/cmake/global_compile_options.txt) -include(create_map_file) - -# Include function for creating code coverage targets -include(CreateCodeCoverageTargets) - -# List of projects that generate coverage -# This write empty makes sure that if file is already there, we replace it for an empty one -# Then each project will APPEND to this file -# At the end of cmake generate, this file will list the targets for code cov -file(WRITE ${CMAKE_BINARY_DIR}/coverage_targets.txt "") - -# Determine platform to build -if(AZ_PLATFORM_IMPL STREQUAL "WIN32") - # build windows platform - set(PAL az_win32) -elseif(AZ_PLATFORM_IMPL STREQUAL "POSIX") - # build linux platform - set(PAL az_posix) -else() - #noplatform - set(PAL az_noplatform) -endif() - -add_subdirectory(sdk/src/azure/core) - -# SDK Clients -add_subdirectory(sdk/src/azure/iot) - -#PAL (Hardware + HTTP) -add_subdirectory(sdk/src/azure/platform) - -# User can disable samples generation by setting env variable AZ_SDK_C_NO_SAMPLES -if(NOT DEFINED ENV{AZ_SDK_C_NO_SAMPLES}) - if(TRANSPORT_PAHO) - add_subdirectory(sdk/samples/iot) - endif() -endif() - -# default for Unit testing with cmocka is OFF, however, this will be ON on CI and tests must -# pass before committing changes -if (UNIT_TESTING) - # Core - add_subdirectory(sdk/tests/core) - - # IoT - add_subdirectory(sdk/tests/iot/common) - add_subdirectory(sdk/tests/iot/hub) - add_subdirectory(sdk/tests/iot/provisioning) - -endif() - -# Fail generation when setting MOCKS ON without GCC -if(UNIT_TESTING_MOCKS) - if(UNIT_TESTING) - if(NOT CMAKE_C_COMPILER_ID MATCHES "GNU") - # Fail generation when asking for MOCK without GCC - message(FATAL_ERROR "Unsupported Compiler Option.\nOption `UNIT_TESTING_MOCKS` is not supported on ${CMAKE_C_COMPILER_ID}. It is only supported by GNU gcc.\nRemove option `UNIT_TESTING_MOCKS` to build tests without using MOCK.") - endif() - else() - # Mention MOCK is ignored - message(WARNING "UNIT_TESTING_MOCKS will be ignored because UNIT_TESTING is not enabled.") - endif() -endif() diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/CMakeSettings.json b/NETX/addons/azure_iot/azure-sdk-for-c/CMakeSettings.json deleted file mode 100644 index ea4c301..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/CMakeSettings.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "configurations": [ - { - "name": "x64-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "", - "variables": [ - { - "name": "UNIT_TESTING", - "value": "False", - "type": "BOOL" - } - ] - }, - { - "name": "x64-Debug-withTests", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "", - "variables": [ - { - "name": "UNIT_TESTING", - "value": "True", - "type": "BOOL" - } - ] - } - ] -} \ No newline at end of file diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/CONTRIBUTING.md b/NETX/addons/azure_iot/azure-sdk-for-c/CONTRIBUTING.md deleted file mode 100644 index 6f09465..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/CONTRIBUTING.md +++ /dev/null @@ -1,165 +0,0 @@ -# Contributing - -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.microsoft.com. - -When you submit a pull request, a CLA-bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -## Additional Helpful Links for Contributors - -Many people all over the world have helped make this project better. You'll want to check out: - -- [What are some good first issues for new contributors to the repo?](https://github.com/azure/azure-sdk-for-c/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs) -- [How to build and test your change](#developer-guide) -- [How you can make a change happen!](#pull-requests) -- Conceptual Topics in the detailed [Azure SDK for Embedded C docs](https://azure.github.io/azure-sdk-for-c). - -## Community - -- Chat with other community members [![Join the chat at https://gitter.im/azure/azure-sdk-for-c](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/azure/azure-sdk-for-c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -## Reporting Security Issues and Security Bugs - -Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) . You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/msrc/faqs-report-an-issue). - -## How to Contribute to the Azure SDK for Embedded C - -There are many ways that you can contribute to the Azure SDK for Embedded C project. - -- For reporting bugs, requesting features, or asking for support, please file an issue in the [issues](https://github.com/Azure/azure-sdk-for-c/issues) section of the project. - -- If you would like to become an active contributor to this project please follow the instructions provided in [Microsoft Azure Projects Contribution Guidelines](https://opensource.microsoft.com/collaborate). - -- To make code changes, or contribute something new, please follow the [GitHub Forks / Pull requests model](https://help.github.com/articles/fork-a-repo/): Fork the repo, make the change and propose it back by submitting a pull request. - -- Refer to the [wiki](https://github.com/Azure/azure-sdk-for-c/wiki) to learn about how Azure SDK for Embedded C generates lint checker, doxygen, and code coverage reports. - -### Pull Requests - -- **DO** submit all code changes via pull requests (PRs) rather than through a direct commit. PRs will be reviewed and potentially merged by the repo maintainers after a peer review that includes at least one maintainer. -- **DO NOT** submit "work in progress" PRs. A PR should only be submitted when it is considered ready for review and subsequent merging by the contributor. -- **DO** give PRs short-but-descriptive names (e.g. "Improve code coverage for Azure.Core by 10%", not "Fix #1234") -- **DO** refer to any relevant issues and include [keywords](https://help.github.com/articles/closing-issues-via-commit-messages/) that automatically close issues when the PR is merged. -- **DO** tag any users that should know about and/or review the change. -- **DO** ensure each commit successfully builds. The entire PR must pass all tests in the Continuous Integration (CI) system before it'll be merged. -- **DO** address PR feedback in an additional commit(s) rather than amending the existing commits, and only rebase/squash them when necessary. This makes it easier for reviewers to track changes. -- **DO** assume that ["Squash and Merge"](https://github.com/blog/2141-squash-your-commits) will be used to merge your commit unless you request otherwise in the PR. -- **DO NOT** fix merge conflicts using a merge commit. Prefer `git rebase`. -- **DO NOT** mix independent, unrelated changes in one PR. Separate real product/test code changes from larger code formatting/dead code removal changes. Separate unrelated fixes into separate PRs, especially if they are in different assemblies. - -#### Merging Pull Requests (for project contributors with write access) - -- **DO** use ["Squash and Merge"](https://github.com/blog/2141-squash-your-commits) by default for individual contributions unless requested by the PR author. - Do so, even if the PR contains only one commit. It creates a simpler history than "Create a Merge Commit". - Reasons that PR authors may request "Merge and Commit" may include (but are not limited to): - - - The change is easier to understand as a series of focused commits. Each commit in the series must be buildable so as not to break `git bisect`. - - Contributor is using an e-mail address other than the primary GitHub address and wants that preserved in the history. Contributor must be willing to squash - the commits manually before acceptance. - -### Developer Guide - -#### Prerequisites - -- [CMake](https://cmake.org/download/) version 3.10 or later -- C compiler: [MSVC](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019), [gcc](https://gcc.gnu.org/) or [clang](https://clang.llvm.org/) are recommended -- [git](https://git-scm.com/downloads) to clone our Azure SDK repository with the desired tag -- [cmocka](https://cmocka.org/) for building and running unit tests. By default, building unit tests is disabled, so, unless you want to add unit tests or run then, you don't need to install this. See how `vcpkg` can be used to install dependencies [here][vcpkg]. -- [libcurl](https://curl.haxx.se/download.html) which is used as an http stack. You don't need to install libcurl if you are not building samples, or if you will provide another HTTP stack implementation. The minimum required version of libcurl is 7.1. - -> Note: Using libcurl requires a global init and clean up that needs to happen in application code. See more info in Running Samples section. - -See how `vcpkg` can be used to install dependencies [here][vcpkg]. - -- [doxygen](http://www.doxygen.nl/download.html) if you need to generate and view documentation. - -### Running Tests - -#### Unit Tests - -See [CMake options][azure_sdk_for_c_cmake_options] to learn about how to build and run unit tests. - -After compiling project with unit test enabled, run tests with: - -```bash -cmake -DUNIT_TESTING=ON .. -cmake --build . -# ctest will call and run tests -# -V runs tests in verbose mode to show more info about tests -ctest -V -``` - -#### Test with Mocked Functions - -Some test uses linker option ld to wrap functions and mock the implementation for it to do unit testing. Specially for PAL-related functions, mocking functions becomes a convenient way to break dependency between functions. - -In order to run this tests, GCC is required (or any compiler that supports -ld linker flag). - -To enable building project and linking with this option, as well as adding tests using mocked functions, add option `-DUNIT_TESTING_MOCKS=ON` next to `-DUNIT_TESTING=ON` to cmake cache generation (see below example) - -```cmake -cmake -DUNIT_TESTING=ON -DUNIT_TESTING_MOCKS=ON .. -``` - -### Build Docs - -Running below command from root folder will create a new folder `docs` containing html file with documentation about CORE headers. Make sure you have `doxygen` version *1.8.18* or later installed on the system. - - -```bash -doxygen doc/Doxyfile -``` - -### Code Coverage Reports - -Code coverage reports can be generated after running unit tests for each project. Follow below instructions will generate code coverage reports. - -#### Requirements - -- **gcc** - clang/MSVC are not supported -- **Debug** - Build files for debug `cmake -DCMAKE_BUILD_TYPE=Debug ..` -- **cmocka / Unit Test Enabled** - Build cmocka unit tests `cmake --DUNIT_TESTING=ON ..` -- **environment variable** - `set AZ_SDK_CODE_COV=1` - -```bash -# from source code root, create a new folder to build project: -mkdir build -cd build - -# set env variable to enable building code coverage -export AZ_SDK_CODE_COV=1 -# generate cmake files with Debug and cmocka unit tests enabled -cmake -DUNIT_TESTING=ON -DCMAKE_BUILD_TYPE=Debug .. -# build -cmake --build . - -## There are 3 available reports to generate for each project: -# 1. using lcov. Html files grouped by folders. Make sure lcov -# is installed. -make ${project_name}_cov //i.e. az_core_cov or az_iot_cov - -# 2. using gcov. Html page with all results in one page. Make sure -# gcov is installed. -make ${project_name}_cov_html //i.e. az_core_cov_html or az_iot_cov_html - -# 3. using gcov. XML file with all results. Make sure -# gcov is installed. -make ${project_name}_cov_xml //i.e. az_core_cov_xml or az_iot_cov_xml - -## Code Coverage is available for these projects: -# az_core -# az_iot - -> Note: If `make` fails with "project not found" it's likely you are not using `gcc`. Use `sudo update-alternatives --config c+++` and `sudo update-alternatives --config cc` to switch to gcc. -``` - - -[vcpkg]: https://github.com/Azure/azure-sdk-for-c/blob/master/README.md#development-environment -[azure_sdk_for_c_cmake_options]: https://github.com/Azure/azure-sdk-for-c#cmake-options diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/LICENSE b/NETX/addons/azure_iot/azure-sdk-for-c/LICENSE deleted file mode 100644 index 51b6a76..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - MIT License - - Copyright (c) Microsoft Corporation. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/NOTICE.txt b/NETX/addons/azure_iot/azure-sdk-for-c/NOTICE.txt deleted file mode 100644 index 3cfc2de..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/NOTICE.txt +++ /dev/null @@ -1,85 +0,0 @@ -azure-sdk-for-c - -NOTICES AND INFORMATION -Do Not Translate or Localize - -This software incorporates material from third parties. Microsoft makes certain -open source code available at https://3rdpartysource.microsoft.com, or you may -send a check or money order for US $5.00, including the product name, the open -source component name, and version number, to: - -Source Code Compliance Team -Microsoft Corporation -One Microsoft Way -Redmond, WA 98052 -USA - -Notwithstanding any other terms, you may reverse engineer this software to the -extent required to debug changes to any libraries licensed under the GNU Lesser -General Public License. - ------------------------------------------------------------------------------- - -Azure SDK for Embedded C uses third-party libraries or other resources that may be -distributed under licenses different than the Azure SDK for Embedded C software. - -In the event that we accidentally failed to list a required notice, please -bring it to our attention. Post an issue or email us: - - azcsdkhelp@microsoft.com - -The attached notices are provided for information only. - -License notice for CMake Modules ------------------------------------------------------------------------------- - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -License notice for libssh ------------------------------------------------------------------------------- - -Some parts are under the BSDv2 License : - - -Copyright (c) 2000 Markus Friedl. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/README.md b/NETX/addons/azure_iot/azure-sdk-for-c/README.md deleted file mode 100644 index d11846a..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/README.md +++ /dev/null @@ -1,515 +0,0 @@ -# Azure SDK for Embedded C - -[![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/c/c%20-%20client%20-%20ci?branchName=master)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=722&branchName=master) - -The Azure SDK for Embedded C is designed to allow small embedded (IoT) devices to communicate with Azure services. Since we expect our client library code to run on microcontrollers, which have very limited amounts of flash and RAM, and have slower CPUs, our C SDK does things very differently than the SDKs we offer for other languages. - -With this in mind, there are many tenets or principles that we follow in order to properly address this target audience: - -- Customers of our SDK compile our source code along with their own. - -- We target the C99 programming language and test with gcc, clang, & MS Visual C compilers. - -- We offer very few abstractions making our code easy to understand and debug. - -- Our SDK is non allocating. That is, customers must allocate our data structures where they desire (global memory, heap, stack, etc.) and then pass the address of the allocated structure into our functions to initialize them and in order to perform various operations. - -- Unlike our other language SDKs, many things (such as composing an HTTP pipeline of policies) are done in source code as opposed to runtime. This reduces code size, improves execution speed and locks-in behavior, reducing the chance of bugs at runtime. - -- We support microcontrollers with no operating system, microcontrollers with a real-time operating system (like [Azure RTOS](https://azure.microsoft.com/services/rtos/)), Linux, and Windows. Customers can implement custom platform layers to use our SDK on custom devices. We provide some platform layers, and encourage the community to submit platform layers to increase the out-of-the-box supported platforms. - -## Table of Contents - -- [Azure SDK for Embedded C](#azure-sdk-for-embedded-c) - - [Table of Contents](#table-of-contents) - - [Documentation](#documentation) - - [The GitHub Repository](#the-github-repository) - - [Services](#services) - - [Structure](#structure) - - [Master Branch](#master-branch) - - [Release Branches and Release Tagging](#release-branches-and-release-tagging) - - [Getting Started Using the SDK](#getting-started-using-the-sdk) - - [CMake](#cmake) - - [CMake Options](#cmake-options) - - [VSCode](#vscode) - - [Source Files (IDE, command line, etc)](#source-files-ide-command-line-etc) - - [Consume SDK for C as Dependency with CMake](#consume-sdk-for-c-as-dependency-with-cmake) - - [Running Samples](#running-samples) - - [Libcurl Global Init and Global Clean Up](#libcurl-global-init-and-global-clean-up) - - [Development Environment](#development-environment) - - [Windows](#windows) - - [Linux](#linux) - - [Mac](#mac) - - [Using your own HTTP stack implementation](#using-your-own-http-stack-implementation) - - [Link your application with your own HTTP stack](#link-your-application-with-your-own-http-stack) - - [SDK Architecture](#sdk-architecture) - - [Contributing](#contributing) - - [Additional Helpful Links for Contributors](#additional-helpful-links-for-contributors) - - [Community](#community) - - [Reporting Security Issues and Security Bugs](#reporting-security-issues-and-security-bugs) - - [License](#license) - -## Documentation - -We use [doxygen](https://www.doxygen.nl) to generate documentation for source code. You can find the generated, versioned documentation [here](https://azure.github.io/azure-sdk-for-c). - -## The GitHub Repository - -To get help with the SDK: - -- File a [Github Issue](https://github.com/Azure/azure-sdk-for-c/issues/new/choose). -- Ask new questions or see others' questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/azure+c) using the `azure` and `c` tags. - -### Services - -The Azure SDK for Embedded C repo has been structured around the service libraries it provides: - -1. [IoT](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/docs/iot) - Library to connect Embedded Devices to Azure IoT services - -### Structure - -This repo is structured with two priorities: - -1. Separation of services/features to make it easier to find relevant information and resources. -2. Simplified source file structuring to easily integrate features into a user's project. - -`/sdk` - folder containing docs, sources, samples, tests for all SDK packages
-    `/docs` - documentation for each service (iot, etc)
-    `/inc` - include directory - can be singularly included in your project to resolve all headers
-    `/samples` - samples for each service
-    `/src` - source files for each service
-    `/tests` - tests for each service
- -For instructions on how to consume the libraries via CMake, please see [here](#cmake). For instructions on how consume the source code in an IDE, command line, or other build systems, please see [here](#source-files-ide-command-line-etc). - -### Master Branch - -The master branch has the most recent code with new features and bug fixes. It does **not** represent the latest General Availability (**GA**) release of the SDK. - -### Release Branches and Release Tagging - -When we make an official release, we will create a unique git tag containing the name and version to mark the commit. We'll use this tag for servicing via hotfix branches as well as debugging the code for a particular preview or stable release version. A release tag looks like this: - - `_` - - The latest release can be found in the [release section](https://github.com/Azure/azure-sdk-for-c/releases) of this repo. - - For more information, please see this [branching strategy](https://github.com/Azure/azure-sdk/blob/master/docs/policies/repobranching.md#release-tagging) document. - -## Getting Started Using the SDK - -The SDK can be conveniently consumed either via CMake or other non-CMake methods (IDE workspaces, command line, and others). - -### CMake - -1. Install the required prerequisites: - - [CMake](https://cmake.org/download/) version 3.10 or later - - C compiler: [MSVC](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019), [gcc](https://gcc.gnu.org/) or [clang](https://clang.llvm.org/) are recommended - - [git](https://git-scm.com/downloads) to clone our Azure SDK repository with the desired tag - -2. Clone our Azure SDK repository, optionally using the desired version tag. - - git clone https://github.com/Azure/azure-sdk-for-c - - git checkout - - For information about using a specific client library, see the README file located in the client library's folder which is a subdirectory under the [`/sdk/docs`](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/docs) folder. - -3. Ensure the SDK builds correctly. - - - Create an output directory for your build artifacts (in this example, we named it `build`, but you can pick any name). - - mkdir build - - - Navigate to that newly created directory. - - cd build - - - Run `cmake` pointing to the sources at the root of the repo to generate the builds files. - - cmake .. - - - Launch the underlying build system to compile the libraries. - - cmake --build . - - This results in building each library as a static library file, placed in the output directory you created (for example `build\sdk\core\az_core\Debug`). At a minimum, you must have an `Azure Core` library, a `Platform` library, and an `HTTP` library. Then, you can build any additional Azure service client library you intend to use from within your application (for example `build\sdk\iot\Debug`). To use our client libraries in your application, just `#include` our public header files and then link your application's object files with our library files. - -4. Provide platform-specific implementations for functionality required by `Azure Core`. For more information, see the [Azure Core Porting Guide](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#porting-the-azure-sdk-to-another-platform). - -### CMake Options - -By default, when building the project with no options, the following static libraries are generated: - -- ``Libraries``: - - az_core - - az_span, az_http, az_json, etc. - - az_iot - - iot_provisioning, iot_hub, etc. - - az_noplatform - - A platform abstraction which will compile but returns `AZ_ERROR_DEPENDENCY_NOT_PROVIDED` from all its functions. This ensures the project can be compiled without the need to provide any specific platform implementation. This is useful if you want to use az_core without platform specific functions like `time` or `sleep`. - - az_nohttp - - Library that provides a no-op HTTP stack, returning `AZ_ERROR_DEPENDENCY_NOT_PROVIDED`. Similar to `az_noplatform`, this library ensures the project can be compiled without requiring any HTTP stack implementation. This is useful if you want to use `az_core` without `az_http` functionality. - -The following CMake options are available for adding/removing project features. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionDefault Value
UNIT_TESTINGGenerates 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_MOCKSThis 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
PRECONDITIONSTurning 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_CURLThis 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_PAHOThis option requires paho-mqtt dependency to be available. Provides Paho MQTT support for IoT.OFF
AZ_PLATFORM_IMPLThis 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 -#include -``` - -- All source files are placed in a directory structure similar to the headers: `sdk/src`. Each service has its own subdirectory to separate files which you may be singularly interested in. - -To use a specific service/feature, you may include the header file with the function declaration and compile the according `.c` containing the function implementation with your project. - -The specific dependencies of each service may vary, but a couple rules of thumb should resolve the most typical of issues. - -1. All services depend on `core` ([source files here](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/src/azure/core)). You may compile these files with your project to resolve core dependencies. -2. Most services will require a platform file to be compiled with your project ([see here for porting instructions](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#porting-the-azure-sdk-to-another-platform)). We have provided several implementations already [here](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/src/azure/platform) for [`windows`](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/src/azure/platform/az_win32.c), [`posix`](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/src/azure/platform/az_posix.c), and a [`no_platform`](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/src/azure/platform/az_noplatform.c) for no-op stubs. Please compile one of these, for your respective platform, with your project. - -The following compilation, preprocessor options will add or remove functionality in the SDK. - -| Option | Description | -| ------ | ----------- | -| `AZ_NO_PRECONDITION_CHECKING` | Turns off precondition checks to maximize performance with removal of function precondition checking. | -| `AZ_NO_LOGGING` | Removes all logging code and artifacts from the SDK (helps reduce code size). | - -## Running Samples - -See [cmake options](#cmake-options) to learn about how to build an HTTP transport adapter, how to build IoT samples, and to turn logging on. - - -### Storage Sample -The storage sample expects a storage account with a container and SaS token used for authentication to be set in an environment variable `AZURE_STORAGE_URL`. - -Note: Building samples can be disabled by setting `AZ_SDK_C_NO_SAMPLES` environment variable. - -```bash -# On linux, set env var like this. For Windows, do it from advanced settings/ env variables - -export ENV_URL="https://??????????????" -``` - -### Libcurl Global Init and Global Clean Up - -When you select to build the libcurl http stack implementation, you have to make sure to call `curl_global_init` before using SDK client to send HTTP request to Azure. - -You need to also call `curl_global_cleanup` once you no longer need to perform SDk client API calls. - -Note how you can use function `atexit()` to set libcurl global clean up. - -The reason for this is the fact of this functions are not thread-safe, and a customer can use libcurl not only for Azure SDK library but for some other purpose. More info [here](https://curl.haxx.se/libcurl/c/curl_global_init.html). - -**This is libcurl specific only.** - -### IoT samples -Samples for IoT will be built only when CMake option `TRANSPORT_PAHO` is set. -See [compiler options](#compiler-options). -For more information about IoT APIs and samples, see [Azure IoT Clients](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/iot#azure-iot-clients). - - -### Development Environment - -Project contains files to work on Windows, Mac or Linux based OS. - -**Note** For any environment variables set to use with CMake, the environment variables must be set -BEFORE the first cmake generation command (`cmake ..`). The environment variables will NOT be picked up -if you have already generated the build files, set environment variables, and then regenerate. In that -case, you must either delete the `CMakeCache.txt` file or delete the folder in which you are generating build -files and start again. - -### Windows - -vcpkg is the easiest way to have dependencies installed. It downloads packages sources, headers and build libraries for whatever TRIPLET is set up (platform/arq). -VCPKG maintains any installed package inside its own folder, allowing to have multiple vcpkg folder with different dependencies installed on each. This is also great because you don't have to install dependencies globally on your system. - -Follow next steps to install VCPKG and have it linked to cmake. The vcpkg repository is checked out at the commit in [vcpkg-commit.txt](https://github.com/Azure/azure-sdk-for-c/blob/master/eng/vcpkg-commit.txt). Azure SDK code in this version is known to work at that vcpkg ref. - -```bash -# Clone vcpkg: -git clone https://github.com/Microsoft/vcpkg.git -# (consider this path as PATH_TO_VCPKG) -cd vcpkg -# Checkout the vcpkg commit from the vcpkg-commit.txt file (link above) -# git checkout - -# build vcpkg (remove .bat on Linux/Mac) -.\bootstrap-vcpkg.bat -# install dependencies (remove .exe in Linux/Mac) and update triplet -.\vcpkg.exe install --triplet x64-windows-static curl[winssl] cmocka paho-mqtt -# Add this environment variables to link this VCPKG folder with cmake: -# VCPKG_DEFAULT_TRIPLET=x64-windows-static -# VCPKG_ROOT=PATH_TO_VCPKG (replace PATH_TO_VCPKG for where vcpkg is installed) -``` - -If you previously installed VCPKG and dependencies, you may need to run `.\vcpkg.exe upgrade --no-dry-run` to upgrade to the latest packages. - -> Note: Setting up a development environment in windows without VCPKG is not supported. It requires installing all dev-dependencies globally and manually setting cmake files to link each of them. - -Follow next steps to build project from command prompt: - -```bash -# cd to project folder -cd azure-sdk-for-c -# create a new folder to generate cmake files for building (i.e. build) -mkdir build -cd build -# generate files -# cmake will automatically detect what C compiler is used by system by default and will generate files for it -cmake .. -# compile files. Cmake would call compiler and linker to generate libs -cmake --build . -``` - -> Note: The steps above would compile and generate the default output for azure-sdk-for-c which includes static libraries only. See section [CMake Options](#cmake-options) - -#### Visual Studio 2019 - -Open project folder with Visual Studio. If VCPKG has been previously installed and set up like mentioned [above](#VCPKG). Everything will be ready to build. -Right after opening project, Visual Studio will read cmake files and generate cache files automatically. - -### Linux - -#### VCPKG - -VCPKG can be used to download packages sources, headers and build libraries for whatever TRIPLET is set up (platform/architecture). -VCPKG maintains any installed package inside its own folder, allowing to have multiple vcpkg folder with different dependencies installed on each. This is also great because you don't have to install dependencies globally on your system. - -Follow next steps to install VCPKG and have it linked to cmake. Follow next steps to install VCPKG and have it linked to cmake. The vcpkg repository is checked out at the commit in [vcpkg-commit.txt](https://github.com/Azure/azure-sdk-for-c/blob/master/eng/vcpkg-commit.txt). Azure SDK code in this version is known to work at that vcpkg ref. - -```bash -# Clone vcpkg: -git clone https://github.com/Microsoft/vcpkg.git -# (consider this path as PATH_TO_VCPKG) -cd vcpkg -# Checkout the vcpkg commit from the vcpkg-commit.txt file (link above) -# git checkout - -# build vcpkg -./bootstrap-vcpkg.sh -./vcpkg install --triplet x64-linux curl cmocka paho-mqtt -export VCPKG_DEFAULT_TRIPLET=x64-linux -export VCPKG_ROOT=PATH_TO_VCPKG #replace PATH_TO_VCPKG for where vcpkg is installed -``` - -If you previously installed VCPKG and dependencies, you may need to run `./vcpkg upgrade --no-dry-run` to upgrade to the latest packages. - -#### Debian - -Alternatively, for Ubuntu 18.04 you can use: - -`sudo apt install build-essential cmake libcmocka-dev libcmocka0 gcovr lcov doxygen curl libcurl4-openssl-dev libssl-dev ca-certificates` - -#### Build - -```bash -# cd to project folder -cd azure-sdk-for-c -# create a new folder to generate cmake files for building (i.e. build) -mkdir build -cd build -# generate files -# cmake will automatically detect what C compiler is used by system by default and will generate files for it -cmake .. -# compile files. Cmake would call compiler and linker to generate libs -make -``` - -> Note: The steps above would compile and generate the default output for azure-sdk-for-c which includes static libraries only. See section [CMake Options](#cmake-options) - -### Mac - -#### VCPKG - -VCPKG can be used to download packages sources, headers and build libraries for whatever TRIPLET is set up (platform/architecture). -VCPKG maintains any installed package inside its own folder, allowing to have multiple vcpkg folder with different dependencies installed on each. This is also great because you don't have to install dependencies globally on your system. - -First, ensure that you have the latest `gcc` installed: - - brew update - brew upgrade - brew info gcc - brew install gcc - brew cleanup - -Follow next steps to install VCPKG and have it linked to cmake. Follow next steps to install VCPKG and have it linked to cmake. The vcpkg repository is checked out at the commit in [vcpkg-commit.txt](https://github.com/Azure/azure-sdk-for-c/blob/master/eng/vcpkg-commit.txt). Azure SDK code in this version is known to work at that vcpkg ref. - -```bash -# Clone vcpkg: -git clone https://github.com/Microsoft/vcpkg.git -# (consider this path as PATH_TO_VCPKG) -cd vcpkg -# Checkout the vcpkg commit from the vcpkg-commit.txt file (link above) -# git checkout - -# build vcpkg -./bootstrap-vcpkg.sh -./vcpkg install --triplet x64-osx curl cmocka paho-mqtt -export VCPKG_DEFAULT_TRIPLET=x64-osx -export VCPKG_ROOT=PATH_TO_VCPKG #replace PATH_TO_VCPKG for where vcpkg is installed -``` - -If you previously installed VCPKG and dependencies, you may need to run `./vcpkg upgrade --no-dry-run` to upgrade to the latest packages. - -#### Build - -```bash -# cd to project folder -cd azure-sdk-for-c -# create a new folder to generate cmake files for building (i.e. build) -mkdir build -cd build -# generate files -# cmake will automatically detect what C compiler is used by system by default and will generate files for it -cmake .. -# compile files. Cmake would call compiler and linker to generate libs -make -``` - -> Note: The steps above would compile and generate the default output for azure-sdk-for-c which includes static libraries only. See section [CMake Options](#cmake-options) - -### Using your own HTTP stack implementation - -You can create and use your own HTTP stack and adapter. This is to avoid the libcurl implementation from Azure SDK. - -The first step is to understand the two components that are required. The first one is an **HTTP stack implementation** that is capable of sending bits through the wire. Some examples of these are libcurl, win32, etc. - -The second component is an **HTTP transport adapter**. This is the implementation code which takes an http request from Azure SDK Core and uses it to send it using the specific HTTP stack implementation. Azure SDK Core provides the next contract that this component needs to implement: - -```c -AZ_NODISCARD az_result -az_http_client_send_request(az_http_request const* request, az_http_response* ref_response); -``` - -For example, Azure SDK provides a cmake target `az_curl` (find it [here](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/src/azure/platform/az_curl.c)) with the implementation code for the contract function mentioned before. It uses an `az_http_request` reference to create an specific `libcurl` request and send it though the wire. Then it uses `libcurl` response to fill the `az_http_response` reference structure. - -### Link your application with your own HTTP stack - -Create your own http adapter for an Http stack and then use the following cmake command to have it linked to your application -```cmake -target_link_libraries(your_application_target PRIVATE lib_adapter http_stack_lib) - -# For instance, this is how we link libcurl and its adapter -target_link_libraries(blobs_client_example PRIVATE az_curl CURL::libcurl) -``` - -See the complete cmake file and how to link your own library [here](https://github.com/Azure/azure-sdk-for-c/blob/master/sdk/src/azure/iot/CMakeLists.txt) - -## SDK Architecture - -At the heart of our SDK is, what we refer to as, [Azure Core](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core). This code defines several data types and functions for use by the client libraries that build on top of us such as the [Azure IoT client libraries](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/iot). Here are some of the features that customers use directly: - -- **Spans**: A span represents a byte buffer and is used for string manipulations, HTTP requests/responses, reading/writing JSON payloads. It allows us to return a substring within a larger string without any memory allocations. See the [Working With Spans](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#working-with-spans) section of the `Azure Core` README for more information. - -- **Logging**: As our SDK performs operations, it can send log messages to a customer-defined callback. Customers can enable this to assist with debugging and diagnosing issues when leveraging our SDK code. See the [Logging SDK Operations](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#logging-sdk-operations) section of the `Azure Core` README for more information. - -- **Contexts**: Contexts offer an I/O cancellation mechanism. Multiple contexts can be composed together in your application's call tree. When a context is canceled, its children are also canceled. See the [Canceling an Operation](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#canceling-an-operation) section of the `Azure Core` README for more information. - -- **JSON**: Non-allocating JSON reading and JSON writing data structures and operations. - -- **HTTP**: Non-allocating HTTP request and HTTP response data structures and operations. - -- **Argument Validation**: The SDK validates function arguments and invokes a callback when validation fails. By default, this callback suspends the calling thread _forever_. However, you can override this behavior and, in fact, you can disable all argument validation to get smaller and faster code. See the [SDK Function Argument Validation](https://github.com/Azure/azure-sdk-for-c/tree/master/sdk/docs/core#sdk-function-argument-validation) section of the `Azure Core` README for more information. - -In addition to the above features, `Azure Core` provides features available to client libraries written to access other Azure services. Customers use these features indirectly by way of interacting with a client library. By providing these features in `Azure Core`, the client libraries built on top of us will share a common implementation and many features will behave identically across client libraries. For example, `Azure Core` offers a standard set of credential types and an HTTP pipeline with logging, retry, and telemetry policies. - -## Contributing - -For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-c/blob/master/CONTRIBUTING.md). - -This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit [https://cla.microsoft.com](https://cla.microsoft.com). - -When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact -[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -### Additional Helpful Links for Contributors - -Many people all over the world have helped make this project better. You'll want to check out: - -- [What are some good first issues for new contributors to the repo?](https://github.com/azure/azure-sdk-for-c/issues?q=is%3Aopen+is%3Aissue+label%3A%22up+for+grabs%22) -- [How to build and test your change](https://github.com/Azure/azure-sdk-for-c/blob/master/CONTRIBUTING.md#developer-guide) -- [How you can make a change happen!](https://github.com/Azure/azure-sdk-for-c/blob/master/CONTRIBUTING.md#pull-requests) - -### Community - -- Chat with other community members [![Join the chat at https://gitter.im/azure/azure-sdk-for-c](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/azure/azure-sdk-for-c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -### Reporting Security Issues and Security Bugs - -Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) . You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/msrc/faqs-report-an-issue). - -### License - -Azure SDK for Embedded C is licensed under the [MIT](https://github.com/Azure/azure-sdk-for-c/blob/master/LICENSE) license. diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/SECURITY.md b/NETX/addons/azure_iot/azure-sdk-for-c/SECURITY.md deleted file mode 100644 index dec3d3b..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/SECURITY.md +++ /dev/null @@ -1,41 +0,0 @@ - - -## Security - -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). - -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below. - -## Reporting Security Issues - -**Please do not report security vulnerabilities through public GitHub issues.** - -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). - -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/msrc/pgp-key-msrc). - -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). - -Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. - -## Preferred Languages - -We prefer all communications to be in English. - -## Policy - -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/msrc/cvd). - - diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cgmanifest.json b/NETX/addons/azure_iot/azure-sdk-for-c/cgmanifest.json deleted file mode 100644 index e46c971..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cgmanifest.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "Registrations": [ - { - "Component": { - "Type": "git", - "git": { - "RepositoryUrl": "https://github.com/bilke/cmake-modules", - "CommitHash": "66fa2579d36f30cdab93d1dbd4c3d682a25ae5f3" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "git", - "git": { - "RepositoryUrl": "https://github.com/xbmc/libssh", - "CommitHash": "3cb0a1bf023cce7209290f998b8dc3029ed3df77" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "cmocka", - "Version": "1.1.5-1", - "DownloadUrl": "https://gitlab.com/cmocka/cmocka" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "paho-mqtt", - "Version": "1.3.1", - "DownloadUrl": "https://github.com/eclipse/paho.mqtt.c" - } - }, - "DevelopmentDependency": false - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "curl", - "Version": "7.68.0-3", - "DownloadUrl": "https://github.com/curl/curl" - } - }, - "DevelopmentDependency": false - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "openssl", - "Version": "1.1.1d", - "DownloadUrl": "https://www.openssl.org" - } - }, - "DevelopmentDependency": false - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "zlib", - "Version": "1.2.11-6", - "DownloadUrl": "https://www.zlib.net/" - } - }, - "DevelopmentDependency": false - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "gcc-arm-none-eabi", - "Version": "6.3.1+svn253039-1build1", - "DownloadUrl": "https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/gcc-arm-none-eabi_6.3.1+svn253039-1build1_amd64.deb.html" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "gcovr", - "Version": "3.4-1", - "DownloadUrl": "https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/gcovr_3.4-1_all.deb.html" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "lcov", - "Version": "1.13-3", - "DownloadUrl": "https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/lcov_1.13-3_all.deb.html" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "clang-format", - "Version": "9.0.0-2~ubuntu18.04.2", - "DownloadUrl": "https://ubuntu.pkgs.org/18.04/ubuntu-updates-universe-amd64/clang-format-9_9-2~ubuntu18.04.2_amd64.deb.html" - } - }, - "DevelopmentDependency": true - }, - { - "Component": { - "Type": "other", - "Other": { - "Name": "doxygen", - "Version": "1.8.20", - "DownloadUrl": "http://doxygen.nl/files/doxygen-1.8.20-setup.exe" - } - }, - "DevelopmentDependency": true - } - ] -} diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddAzureSDKforC.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddAzureSDKforC.cmake deleted file mode 100644 index 0c9dbc4..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddAzureSDKforC.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT -# -# How to use: Copy this file to a cmake modules folder within your project. -# - Add `list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/your-cmake-modules-folder")` -# - Call this module by doing `include(AddAzureSDKforC)` from the root CMakeLists.txt. -# - Link your application against your CMake targets, for example, `target_link_libraries(yourApp PRIVATE az_core)`. -# -# This will create a _deps folder for the generated project and Azure SDK will be checked out in there. -# When calling `cmake --build .`, Azure SDK will be built before your application so it can be available for your app to consume. -# -# CMake options for Azure SDK for C can be set together with your application CMake options. -# -# Note: Update GIT_TAG to the expected version from Azure SDK for C -# - -include(FetchContent) -FetchContent_Declare(azuresdkforc - GIT_REPOSITORY https://github.com/Azure/azure-sdk-for-c.git - GIT_TAG 1.0.0-preview.6) -FetchContent_GetProperties(azuresdkforc) -if(NOT azuresdkforc_POPULATED) - FetchContent_Populate(azuresdkforc) - add_subdirectory(${azuresdkforc_SOURCE_DIR} ${azuresdkforc_BINARY_DIR} EXCLUDE_FROM_ALL) -endif() diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddTestCMocka.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddTestCMocka.cmake deleted file mode 100644 index 125ff12..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/AddTestCMocka.cmake +++ /dev/null @@ -1,159 +0,0 @@ -# -# Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007-2018 Andreas Schneider -# Copyright (c) 2018 Anderson Toshiyuki Sasaki -# -# Redistribution and use is allowed according to the terms of the BSD license. -# -# Modifed version from https://github.com/xbmc/libssh/blob/667fb5f9a9c96f210583dbfb11755c43250c5e55/cmake/Modules/AddCMockaTest.cmake -#.rst: -# AddTestCMocka -# ------------- -# -# This file provides a function to add a test -# -# Functions provided -# ------------------ -# -# :: -# -# add_cmocka_test(target_name -# SOURCES src1 src2 ... srcN -# [COMPILE_OPTIONS opt1 opt2 ... optN] -# [LINK_OPTIONS lopt1 lop2 .. loptN] -# [PRIVATE_ACCESS ON/OFF] -# [LINK_TARGETS target1 target2 .. targetN] -# ) -# -# ``target_name``: -# Required, expects the name of the test which will be used to define a target -# -# ``SOURCES``: -# Required, expects one or more source files names -# -# ``COMPILE_OPTIONS``: -# Optional, expects one or more options to be passed to the compiler -# -# ``LINK_OPTIONS``: -# Optional, expects one or more options to be passed to the linker -# -# ``PRIVATE_ACCESS``: -# Optional, when ON, tests are granted access to az_core private layer -# -# ``LINK_TARGETS``: -# Optional, expects one or more targets from the same project to be passed to cmake target linker -# -# -# Example: -# -# .. code-block:: cmake -# -# add_cmocka_test(my_test -# SOURCES my_test.c other_source.c -# COMPILE_OPTIONS -g -Wall -# LINK_OPTIONS -Wl,--enable-syscall-fixup -# PRIVATE_ACCESS ON -# LINK_TARGETS target1, target2 -# ) -# -# Where ``my_test`` is the name of the test, ``my_test.c`` and -# ``other_source.c`` are sources for the binary, ``-g -Wall`` are compiler -# options to be used, ``-Wl,--enable-syscall-fixup`` is an option passed to the linker, -# ``PRIVATE_ACCESS`` is ON to let tests access private layer from az_core and ``LINK_TAGETS``` -# list all the cmake tagets to link to -# - -find_package(cmocka CONFIG REQUIRED) - -enable_testing() -include(CTest) - -set(MATH_LIB_UNIX "") -if (UNIX) - set(MATH_LIB_UNIX "m") -endif() - -function(ADD_CMOCKA_TEST _TARGET_NAME) - - set(one_value_arguments - ) - - set(multi_value_arguments - SOURCES - COMPILE_OPTIONS - LINK_OPTIONS - PRIVATE_ACCESS - LINK_TARGETS - ) - - cmake_parse_arguments(_add_cmocka_test - "" - "${one_value_arguments}" - "${multi_value_arguments}" - ${ARGN} - ) - - if (NOT DEFINED _add_cmocka_test_SOURCES) - message(FATAL_ERROR "No sources provided for target ${_TARGET_NAME}") - endif() - - add_executable(${_TARGET_NAME} ${_add_cmocka_test_SOURCES}) - - # Suppress clobber warning for longjmp - if(CMAKE_C_COMPILER_ID MATCHES "GNU") - target_compile_options(${_TARGET_NAME} PRIVATE -Wno-clobbered) - endif() - - if (DEFINED _add_cmocka_test_COMPILE_OPTIONS) - target_compile_options(${_TARGET_NAME} - PRIVATE ${_add_cmocka_test_COMPILE_OPTIONS} - ) - endif() - - if(DEFINED ENV{VCPKG_ROOT} OR DEFINED ENV{VCPKG_INSTALLATION_ROOT}) - set(CMOCKA_LIB ${CMOCKA_LIBRARIES}) - else() - set(CMOCKA_LIB cmocka) - endif() - - if (DEFINED _add_cmocka_test_LINK_TARGETS) - # link to user defined - target_link_libraries(${_TARGET_NAME} - PRIVATE ${CMOCKA_LIB} ${_add_cmocka_test_LINK_TARGETS} ${MATH_LIB_UNIX} - ) - else() - # link against az_core by default - target_link_libraries(${_TARGET_NAME} - PRIVATE ${CMOCKA_LIB} az_core ${MATH_LIB_UNIX} - ) - endif() - - if (DEFINED _add_cmocka_test_LINK_OPTIONS) - set_target_properties(${_TARGET_NAME} - PROPERTIES LINK_FLAGS - ${_add_cmocka_test_LINK_OPTIONS} - ) - endif() - - # Workaround for linker warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs - if (MSVC) - set_target_properties(${_TARGET_NAME} - PROPERTIES - LINK_FLAGS - "/NODEFAULTLIB:libcmtd.lib" - LINK_FLAGS_RELEASE - "/NODEFAULTLIB:libcmt.lib" - ) - endif() - - target_include_directories(${_TARGET_NAME} PRIVATE ${CMOCKA_INCLUDE_DIR}) - - if (DEFINED _add_cmocka_test_PRIVATE_ACCESS) - target_include_directories(${_TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/sdk/src/azure/core/) - endif() - - add_test(${_TARGET_NAME} - ${TARGET_SYSTEM_EMULATOR} ${_TARGET_NAME} - ) - -endfunction (ADD_CMOCKA_TEST) diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CheckAndIncludeCodeCov.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CheckAndIncludeCodeCov.cmake deleted file mode 100644 index 1755f0c..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CheckAndIncludeCodeCov.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT -# -# Checks if code coverage can be generated for a target. This is true only when: -# 1.- env var AZ_SDK_CODE_COV is set -# 2.- cmake project is set to use gcc -# 3.- cmake project is set to build type Debug -# - -if(DEFINED ENV{AZ_SDK_CODE_COV} AND CMAKE_C_COMPILER_ID MATCHES "GNU") - if(CMAKE_BUILD_TYPE STREQUAL "Debug") - include(CodeCoverage) - endif() -endif() diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CodeCoverage.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CodeCoverage.cmake deleted file mode 100644 index d26a5fc..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CodeCoverage.cmake +++ /dev/null @@ -1,422 +0,0 @@ -# Copyright (c) 2012 - 2017, Lars Bilke -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, -# are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its contributors -# may be used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# CHANGES: -# -# 2012-01-31, Lars Bilke -# - Enable Code Coverage -# -# 2013-09-17, Joakim Söderberg -# - Added support for Clang. -# - Some additional usage instructions. -# -# 2016-02-03, Lars Bilke -# - Refactored functions to use named parameters -# -# 2017-06-02, Lars Bilke -# - Merged with modified version from github.com/ufz/ogs -# -# 2019-05-06, Anatolii Kurotych -# - Remove unnecessary --coverage flag -# -# 2019-12-13, FeRD (Frank Dana) -# - Deprecate COVERAGE_LCOVR_EXCLUDES and COVERAGE_GCOVR_EXCLUDES lists in favor -# of tool-agnostic COVERAGE_EXCLUDES variable, or EXCLUDE setup arguments. -# - CMake 3.4+: All excludes can be specified relative to BASE_DIRECTORY -# - All setup functions: accept BASE_DIRECTORY, EXCLUDE list -# - Set lcov basedir with -b argument -# - Add automatic --demangle-cpp in lcovr, if 'c++filt' is available (can be -# overridden with NO_DEMANGLE option in setup_target_for_coverage_lcovr().) -# - Delete output dir, .info file on 'make clean' -# - Remove Python detection, since version mismatches will break gcovr -# - Minor cleanup (lowercase function names, update examples...) -# -# 2019-12-19, FeRD (Frank Dana) -# - Rename Lcov outputs, make filtered file canonical, fix cleanup for targets -# -# 2020-01-19, Bob Apthorpe -# - Added gfortran support -# -# 2020-02-17, FeRD (Frank Dana) -# - Make all add_custom_target()s VERBATIM to auto-escape wildcard characters -# in EXCLUDEs, and remove manual escaping from gcovr targets -# -# USAGE: -# -# 1. Copy this file into your cmake modules path. -# -# 2. Add the following line to your CMakeLists.txt (best inside an if-condition -# using a CMake option() to enable it just optionally): -# include(CodeCoverage) -# -# 3. Append necessary compiler flags: -# append_coverage_compiler_flags() -# -# 3.a (OPTIONAL) Set appropriate optimization flags, e.g. -O0, -O1 or -Og -# -# 4. If you need to exclude additional directories from the report, specify them -# using full paths in the COVERAGE_EXCLUDES variable before calling -# setup_target_for_coverage_*(). -# Example: -# set(COVERAGE_EXCLUDES -# '${PROJECT_SOURCE_DIR}/src/dir1/*' -# '/path/to/my/src/dir2/*') -# Or, use the EXCLUDE argument to setup_target_for_coverage_*(). -# Example: -# setup_target_for_coverage_lcov( -# NAME coverage -# EXECUTABLE testrunner -# EXCLUDE "${PROJECT_SOURCE_DIR}/src/dir1/*" "/path/to/my/src/dir2/*") -# -# 4.a NOTE: With CMake 3.4+, COVERAGE_EXCLUDES or EXCLUDE can also be set -# relative to the BASE_DIRECTORY (default: PROJECT_SOURCE_DIR) -# Example: -# set(COVERAGE_EXCLUDES "dir1/*") -# setup_target_for_coverage_gcovr_html( -# NAME coverage -# EXECUTABLE testrunner -# BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/src" -# EXCLUDE "dir2/*") -# -# 5. Use the functions described below to create a custom make target which -# runs your test executable and produces a code coverage report. -# -# 6. Build a Debug build: -# cmake -DCMAKE_BUILD_TYPE=Debug .. -# make -# make my_coverage_target -# - -include(CMakeParseArguments) - -# Check prereqs -find_program( GCOV_PATH gcov ) -find_program( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl) -find_program( GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat ) -find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test) -find_program( CPPFILT_PATH NAMES c++filt ) - -if(NOT GCOV_PATH) - message(FATAL_ERROR "gcov not found! Aborting...") -endif() # NOT GCOV_PATH - -set(COVERAGE_COMPILER_FLAGS "-g -fprofile-arcs -ftest-coverage" - CACHE INTERNAL "") - -set(CMAKE_Fortran_FLAGS_COVERAGE - ${COVERAGE_COMPILER_FLAGS} - CACHE STRING "Flags used by the Fortran compiler during coverage builds." - FORCE ) -set(CMAKE_CXX_FLAGS_COVERAGE - ${COVERAGE_COMPILER_FLAGS} - CACHE STRING "Flags used by the C++ compiler during coverage builds." - FORCE ) -set(CMAKE_C_FLAGS_COVERAGE - ${COVERAGE_COMPILER_FLAGS} - CACHE STRING "Flags used by the C compiler during coverage builds." - FORCE ) -set(CMAKE_EXE_LINKER_FLAGS_COVERAGE - "" - CACHE STRING "Flags used for linking binaries during coverage builds." - FORCE ) -set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE - "" - CACHE STRING "Flags used by the shared libraries linker during coverage builds." - FORCE ) -mark_as_advanced( - CMAKE_Fortran_FLAGS_COVERAGE - CMAKE_CXX_FLAGS_COVERAGE - CMAKE_C_FLAGS_COVERAGE - CMAKE_EXE_LINKER_FLAGS_COVERAGE - CMAKE_SHARED_LINKER_FLAGS_COVERAGE ) - -if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading") -endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug" - -if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") - link_libraries(gcov) -endif() - -# Defines a target for running and collection code coverage information -# Builds dependencies, runs the given executable and outputs reports. -# NOTE! The executable should always have a ZERO as exit code otherwise -# the coverage generation will not complete. -# -# setup_target_for_coverage_lcov( -# NAME testrunner_coverage # New target name -# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES testrunner # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# NO_DEMANGLE # Don't demangle C++ symbols -# # even if c++filt is found -# ) -function(setup_target_for_coverage_lcov) - - set(options NO_DEMANGLE) - set(oneValueArgs BASE_DIRECTORY NAME) - set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) - cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(NOT LCOV_PATH) - message(FATAL_ERROR "lcov not found! Aborting...") - endif() # NOT LCOV_PATH - - if(NOT GENHTML_PATH) - message(FATAL_ERROR "genhtml not found! Aborting...") - endif() # NOT GENHTML_PATH - - # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR - if(${Coverage_BASE_DIRECTORY}) - get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) - else() - set(BASEDIR ${PROJECT_SOURCE_DIR}) - endif() - - # Collect excludes (CMake 3.4+: Also compute absolute paths) - set(LCOV_EXCLUDES "") - foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_LCOV_EXCLUDES}) - if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) - endif() - list(APPEND LCOV_EXCLUDES "${EXCLUDE}") - endforeach() - list(REMOVE_DUPLICATES LCOV_EXCLUDES) - - # Conditional arguments - if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE}) - set(GENHTML_EXTRA_ARGS "--demangle-cpp") - endif() - - # Setup target - add_custom_target(${Coverage_NAME} - - # Cleanup lcov - COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory . -b ${BASEDIR} --zerocounters - # Create baseline to make sure untouched files show up in the report - COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b ${BASEDIR} -o ${Coverage_NAME}.base - - # Run tests - COMMAND ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} - - # Capturing lcov counters and generating report - COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b ${BASEDIR} --capture --output-file ${Coverage_NAME}.capture - # add baseline counters - COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base -a ${Coverage_NAME}.capture --output-file ${Coverage_NAME}.total - # filter collected data to final coverage report - COMMAND ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove ${Coverage_NAME}.total ${LCOV_EXCLUDES} --output-file ${Coverage_NAME}.info - - # Generate HTML output - COMMAND ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o ${Coverage_NAME} ${Coverage_NAME}.info - - # Set output files as GENERATED (will be removed on 'make clean') - BYPRODUCTS - ${Coverage_NAME}.base - ${Coverage_NAME}.capture - ${Coverage_NAME}.total - ${Coverage_NAME}.info - ${Coverage_NAME} # report directory - - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS ${Coverage_DEPENDENCIES} - VERBATIM # Protect arguments to commands - COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." - ) - - # Show where to find the lcov info report - add_custom_command(TARGET ${Coverage_NAME} POST_BUILD - COMMAND ; - COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info." - ) - - # Show info where to find the report - add_custom_command(TARGET ${Coverage_NAME} POST_BUILD - COMMAND ; - COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." - ) - -endfunction() # setup_target_for_coverage_lcov - -# Defines a target for running and collection code coverage information -# Builds dependencies, runs the given executable and outputs reports. -# NOTE! The executable should always have a ZERO as exit code otherwise -# the coverage generation will not complete. -# -# setup_target_for_coverage_gcovr_xml( -# NAME ctest_coverage # New target name -# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES executable_target # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# ) -function(setup_target_for_coverage_gcovr_xml) - - set(options NONE) - set(oneValueArgs BASE_DIRECTORY NAME) - set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) - cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(NOT GCOVR_PATH) - message(FATAL_ERROR "gcovr not found! Aborting...") - endif() # NOT GCOVR_PATH - - # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR - if(${Coverage_BASE_DIRECTORY}) - get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) - else() - set(BASEDIR ${PROJECT_SOURCE_DIR}) - endif() - - # Collect excludes (CMake 3.4+: Also compute absolute paths) - set(GCOVR_EXCLUDES "") - foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) - if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) - endif() - list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") - endforeach() - list(REMOVE_DUPLICATES GCOVR_EXCLUDES) - - # Combine excludes to several -e arguments - set(GCOVR_EXCLUDE_ARGS "") - foreach(EXCLUDE ${GCOVR_EXCLUDES}) - list(APPEND GCOVR_EXCLUDE_ARGS "-e") - list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") - endforeach() - - add_custom_target(${Coverage_NAME} - # Run tests - ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} - - # Running gcovr - COMMAND ${GCOVR_PATH} --xml - -r ${BASEDIR} ${GCOVR_EXCLUDE_ARGS} - --object-directory=${PROJECT_BINARY_DIR} - -o ${Coverage_NAME}.xml - BYPRODUCTS ${Coverage_NAME}.xml - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS ${Coverage_DEPENDENCIES} - VERBATIM # Protect arguments to commands - COMMENT "Running gcovr to produce Cobertura code coverage report." - ) - - # Show info where to find the report - add_custom_command(TARGET ${Coverage_NAME} POST_BUILD - COMMAND ; - COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml." - ) -endfunction() # setup_target_for_coverage_gcovr_xml - -# Defines a target for running and collection code coverage information -# Builds dependencies, runs the given executable and outputs reports. -# NOTE! The executable should always have a ZERO as exit code otherwise -# the coverage generation will not complete. -# -# setup_target_for_coverage_gcovr_html( -# NAME ctest_coverage # New target name -# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES executable_target # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# ) -function(setup_target_for_coverage_gcovr_html) - - set(options NONE) - set(oneValueArgs BASE_DIRECTORY NAME) - set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) - cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(NOT GCOVR_PATH) - message(FATAL_ERROR "gcovr not found! Aborting...") - endif() # NOT GCOVR_PATH - - # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR - if(${Coverage_BASE_DIRECTORY}) - get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) - else() - set(BASEDIR ${PROJECT_SOURCE_DIR}) - endif() - - # Collect excludes (CMake 3.4+: Also compute absolute paths) - set(GCOVR_EXCLUDES "") - foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) - if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) - endif() - list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") - endforeach() - list(REMOVE_DUPLICATES GCOVR_EXCLUDES) - - # Combine excludes to several -e arguments - set(GCOVR_EXCLUDE_ARGS "") - foreach(EXCLUDE ${GCOVR_EXCLUDES}) - list(APPEND GCOVR_EXCLUDE_ARGS "-e") - list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") - endforeach() - - add_custom_target(${Coverage_NAME} - # Run tests - ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} - - # Create folder - COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME} - - # Running gcovr - COMMAND ${GCOVR_PATH} --html --html-details - -r ${BASEDIR} ${GCOVR_EXCLUDE_ARGS} - --object-directory=${PROJECT_BINARY_DIR} - -o ${Coverage_NAME}/index.html - - BYPRODUCTS ${PROJECT_BINARY_DIR}/${Coverage_NAME} # report directory - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS ${Coverage_DEPENDENCIES} - VERBATIM # Protect arguments to commands - COMMENT "Running gcovr to produce HTML code coverage report." - ) - - # Show info where to find the report - add_custom_command(TARGET ${Coverage_NAME} POST_BUILD - COMMAND ; - COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." - ) - -endfunction() # setup_target_for_coverage_gcovr_html - -function(append_coverage_compiler_flags) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) - message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}") -endfunction() # append_coverage_compiler_flags diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CreateCodeCoverageTargets.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CreateCodeCoverageTargets.cmake deleted file mode 100644 index 10b370d..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/CreateCodeCoverageTargets.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT -# -# Cmake module used by any project's target for creating a code coverage target for it. -# - -# codeCoverage -macro(create_code_coverage_targets code_cov_target) - if(DEFINED ENV{AZ_SDK_CODE_COV} AND CMAKE_C_COMPILER_ID MATCHES "GNU") - if(CMAKE_BUILD_TYPE STREQUAL "Debug") - APPEND_COVERAGE_COMPILER_FLAGS() - - # Basic coverage using lcov (gcc integrated) - setup_target_for_coverage_lcov(NAME ${code_cov_target}_cov - EXECUTABLE ${code_cov_target}_test - EXCLUDE ${COV_EXCLUDE} - LCOV_ARGS --rc lcov_branch_coverage=1) - - # HTML and XML - Coverage using gcovr (Needs to be installed into system) - setup_target_for_coverage_gcovr_html(NAME ${code_cov_target}_cov_html EXECUTABLE ${code_cov_target}_test) - setup_target_for_coverage_gcovr_xml(NAME ${code_cov_target}_cov_xml EXECUTABLE ${code_cov_target}_test) - - # add project to coverage projects for printing - file(APPEND ${CMAKE_BINARY_DIR}/coverage_targets.txt " ${code_cov_target}_cov_xml") - endif() - endif() -endmacro() diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/create_map_file.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/create_map_file.cmake deleted file mode 100644 index b20093c..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/create_map_file.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT -# -# Instructs linker to generate map files and optimize build for minimal size -# Requires CMake version >= 3.13 to use add_link_options - -function(create_map_file MAP_FILE_NAME) - if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13") - if(MSVC) - add_link_options(/MAP) - elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") - add_link_options(-Wl,-map,${MAP_FILE_NAME}) - add_link_options(-Os) - else() - add_link_options(-Xlinker -Map=${MAP_FILE_NAME}) - add_link_options(-Os) - endif() - else() - message("Skipping map file generation because CMake version does not support add_link_options") - endif() -endfunction() diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/gcc-arm-toolchain.cmake b/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/gcc-arm-toolchain.cmake deleted file mode 100644 index 320e873..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/cmake-modules/gcc-arm-toolchain.cmake +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: MIT -# -# Sets the cmake project as gcc-arm. -# - -set(CMAKE_SYSTEM_NAME Generic) -set(CMAKE_SYSTEM_PROCESSOR arm) -set(CMAKE_C_COMPILER arm-none-eabi-gcc) -set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -string(APPEND CMAKE_C_FLAGS_INIT " -mcpu=cortex-m4 -ffreestanding -nostdlib -mthumb") diff --git a/NETX/addons/azure_iot/azure-sdk-for-c/doc/Doxyfile b/NETX/addons/azure_iot/azure-sdk-for-c/doc/Doxyfile deleted file mode 100644 index 0f11f81..0000000 --- a/NETX/addons/azure_iot/azure-sdk-for-c/doc/Doxyfile +++ /dev/null @@ -1,2536 +0,0 @@ -# Doxyfile 1.8.18 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "Azure SDK for Embedded C" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = $(AZURE_SDK_VERSION) - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = docs - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files -# as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 5 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# declarations. If set to NO, these declarations will be included in the -# documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) ands Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = eng/docs/api/assets/DoxygenLayout.xml - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = "DoxygenWarningLog.txt" - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = ./ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.h *.md - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = eng/ sdk/samples - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = */inc/**/_*.h */tests/* */test/* */internal/* *_private.h *_internal.h - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = _* - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = ./README.md - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files -# were built. This is equivalent to specifying the "-p" option to a clang tool, -# such as clang-check. These options will then be passed to the parser. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = az_ AZ_ - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = ./eng/docs/api/assets/header.html - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = ./eng/docs/api/assets/footer.html - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = ./eng/docs/api/assets/style.css - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via JavaScript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have JavaScript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png The default and svg Looks nicer but requires the -# pdf2svg tool. -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /