Мне нужно условно скомпилировать несколько частей кода, в зависимости от того, есть ли в системе какие-то библиотеки или нет.Их присутствие определяется на этапе настройки CMake, и я планирую сообщить компилятору результаты, используя определения препроцессора (например, #ifdef (LIB_DEFINED) ... #endif).
Я знаю о двух возможностях достижения этого в CMake:
- Создайте файл шаблона с этими определениями препроцессора, передайте его в CMakeLists в configure_file () и, наконец, #include произведенныйфайл конфигурации в каждом исходном файле
- Непосредственно используйте add_definitions (-DLIB_DEFINED) в CMakeLists.
Первый подход кажется мне более сложным, поэтому есть ли какие-либо преимущества использования его вместовторой (например, чтобы избежать проблем с переносимостью)?