Это о том, как интегрировать инструментарий C ++ Azure-Storage в CMake.
Я пытаюсь встроить в наше приложение инструмент, который подключается к хранилищу BLOB-объектов Azure, выводит список файлов / контейнеров, читает данные и т. Д. Я работаю в Linux (Ubuntu 17.04). Я собрал инструменты cpprestsdk и azure-storage из исходного кода.
Я могу собрать некоторые вещи, потому что я буквально добавляю
-I/apps/azure/inst/include
к CMAKE_CXX_FLAGS
, Как вы можете видеть, я использовал CMAKE_INSTALL_PREFIX=/apps/azure/inst
, использовал его для cpprest и azure-storage.
в lib
подкаталог есть cpprestsdk/
каталог, содержащий файлы .cmake. Но мне нужен файл .cmake для хранилища Azure, который я могу включить в свой собственный CMakeLists.txt
, который добавляет вещи, которые мне нужны (флаги, библиотеки и т. д.). Изучение примеров показывает, что они построены таким образом, что будут работать только во время сборки SDK.
Кто-нибудь знает, есть ли такой файл включения .cmake, и если да, то где он установлен?
Хорошо, я ничего не мог найти, и никто не отправил ответ, поэтому я экспериментировал. Краткий ответ: используйте cpprest
вещи и добавить немного azure-storage
директивы себя.
Единственное, что я смог найти, это код CMake в README.md
из cpprest
, Я взял это и добавил свое собственное имя для хранения в Azure, где это может понадобиться.
Добавлено:
find_path( AZURE_INST_DIR "" HINTS /apps/azure/inst REQUIRED )
Все это работает, потому что большая часть зависимостей находится в cpprest, у самого хранилища azure нет дополнительных зависимостей (слава богу!).
Обратите внимание, что пользователи gcc: отключите -Wshadow и -Woverloaded-virtual, потому что код cpprest и azure-storage переполнен этими кодами (очевидно, они недоступны в Visual Studio).
Других решений пока нет …