Я искал переносимый способ заставить CMake включить возможности компилятора C99, чтобы избежать следующей ошибки gcc
:
error: ‘for loop initial declarations are only allowed in C99 mode
for (int s = 1; s <= in_para->StepNumber; s++){
^
Я также не хотел бы проверять, какой компилятор и добавить что-то вроде:
set(CMAKE_C_FLAGS "-std=c99") # that would be bad
Поэтому я нашел это сообщение: включение C99 в CMake и связанный с ним запрос функции: 0012300: у CMake нет кросс-платформенного способа запросить C99. В этой ошибке Mantis я узнал о target_compiler_features
и после этого нашел эти ответы SOF на нем: Как активировать C++ 11 в CMake? и Как обнаружить поддержку C++ 11 компилятора с помощью CMake.
Итак, мои вопросы: этот target_compiler_features
предоставит вам возможность использовать функцию C, а также C++? Какой самый переносимый способ достичь этого сейчас - я в настоящее время использую CMake 2.8.12.2. Объект target_compiler_features
отсутствует в последней версии выпуска CMake (3.0.0). Знаете ли вы, когда он будет выпущен?