В CMake target_include_directories(), target_compile_definitions() и target_compile_options() задают спецификации сборки и требования к использованию двоичных целей.
Каждая из команд имеет режим PRIVATE, PUBLIC и INTERFACE. Однако мне трудно понять разницу между ними. Мое понимание состоит в том, что вышеупомянутые три команды используются для установки среды компилятора для конкретной цели. Итак, что отличает настройку между режимом PRIVATE, PUBLIC и INTERFACE?