Библиотека platform
Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<platform>-<version>/toolchain/share/cmake/Modules/platform/common/platform.cmake.
Библиотека platform содержит следующие команды:
initialize_platform ([<параметры>])– инициализация библиотекиplatform.Нужно использовать в корневом файле
CMakeLists.txt.Задает способ компоновки исполняемых файлов в проекте решения:
initialize_platform ()– динамическая компоновка исполняемых файлов.initialize_platform (USE_DYNAMIC_LEGACY)– динамическая компоновка исполняемых файлов. В отличие от командыinitialize_platform ()без параметров командаinitialize_platform (USE_DYNAMIC_LEGACY)задействует устаревший вариант динамической компоновки, при котором исполняемый файл программы статически компонуется с загрузчиком динамических библиотек (libld.elf_so.a) и библиотекамиlibkos,libc,libm,libpthread,libvfs,librtlcom,libdynld. При динамической компоновке, задействованной в результате использования командыinitialize_platform ()без параметров, с этими библиотеками статически компонуется загрузчик динамических библиотек, в результате чего создается библиотекаld.elf_so, с которой динамически компонуется исполняемый файл программы.initialize_platform (FORCE_STATIC)– принудительная статическая компоновка исполняемых файлов.
Можно указать дополнительный параметр
NO_NEW_VERSION_CHECK(например,initialize_platform (FORCE_STATIC NO_NEW_VERSION_CHECK)), чтобы отключить проверку наличия обновлений SDK и передачу версии SDK на сервер "Лаборатории Касперского". Подробнее о политике предоставления данных см. "Предоставление данных".platform_target_force_static (<имя цели сборки>)– принудительная статическая компоновка исполняемого файла, заданного через командуadd_executable (). Выполняется статическая компоновка независимо от того, какой способ компоновки задан командойinitialize_platform ([<параметр>]).platform_target_use_dynamic_legacy (<имя цели сборки>)– динамическая компоновка исполняемого файла, заданного через командуadd_executable (). Выполняется динамическая компоновка независимо о того, какой способ компоновки задан командойinitialize_platform ([<параметр>]). Задействует устаревший вариант динамической компоновки, как командаinitialize_platform (USE_DYNAMIC_LEGACY), но только для одного исполняемого файла.project_header_default (<параметры>)– установка флагов компилятора и компоновщика.Нужно использовать в корневом файле
CMakeLists.txt.Параметры команды задаются в виде пар, состоящих из флага и его состояния (
YES– установлен,NO– не установлен):"FLAG_1:{YES|NO}""FLAG_2:{YES|NO}"..."FLAG_N:{YES|NO}". Флаги компилятора, задающие стандарты языков C/C++, а также флаг компилятора, управляющий выводом предупреждений, приведены в таблице ниже. Если флаг компилятора, задающий стандарты языков C/C++, не установлен, то по умолчанию используются стандарты ISO C17 и 2017 ISO C++ с расширениями GNU.Пример команды:
project_header_default ("STANDARD_GNU_17:YES" "STRICT_WARNINGS:NO")
Сведения о некоторых флагах компилятора
Флаг
Смысловое значение
Соответствующие параметры компилятора C
Соответствующие параметры компилятора C++
STANDARD_ANSIИспользуются стандарты ISO C90 и 1998 ISO C++.
-ansi-ansiSTANDARD_C99Используется стандарт ISO C99.
-std=c99Нет
STANDARD_GNU_C99Используется стандарт ISO C99 с расширениями GNU.
-std=gnu99Нет
STANDARD_11Используются стандарты ISO C11 и 2011 ISO C++.
-std=c11или-std=c1x-std=c++11или-std=c++0xSTANDARD_GNU_11Используются стандарты ISO C11 и 2011 ISO C++ с расширениями GNU.
-std=gnu1xили-std=gnu11-std=gnu++0xили-std=gnu++11STANDARD_14Используется стандарт 2014 ISO C++.
Нет
-std=c++14STANDARD_GNU_14Используется стандарт 2014 ISO C++ с расширениями GNU.
Нет
-std=gnu++14STANDARD_17Используются стандарты ISO C17 и 2017 ISO C++.
-std=c17-std=c++17STANDARD_GNU_17Используются стандарты ISO C17 и 2017 ISO C++ с расширениями GNU.
-std=gnu17-std=gnu++17STRICT_WARNINGSВключен вывод предупреждений для обнаружения потенциальных проблем и ошибок в коде на языках C и C++.
По умолчанию вывод этих предупреждений включен.
-Wcast-qual-Wcast-align-Wundef-Wmissing-prototypes-Wcast-qual-Wcast-align-Wundef
Полное описание флагов можно найти в файле /opt/KasperskyOS-Community-Edition-<platform>-<version>/toolchain/share/cmake/Modules/platform/building/compiler_flags-GNU.cmake.