Подтвердить что ты не робот

Cmake: как добавить строку к переменной через командную строку?

В моем CMakeList.txt я могу сделать следующее:

set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -new -flags -here")

Можно ли сделать это через командную строку? Например:

cmake.exe -DCMAKE_CXXFLAGS+= -new -flags
4b9b3361

Ответ 1

Я не уверен, можно ли напрямую добавлять параметры из командной строки, но вы можете использовать дополнительную переменную для их хранения и слияния в конце. Как показано ниже:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_FLAGS}")

И затем вызовите cmake следующим образом:

cmake -DMY_FLAGS="-new -flags"

Ответ 2

Если вам не нравится синтаксис командной строки, заданный @Svalorzen, вы можете написать script, который интерпретирует аргументы командной строки так, как вам нравится, и преобразует их в то, что вы можете наложить на cmake.exe командная строка. Если переносимость вызывает беспокойство, вы можете написать script на языке, таком как Perl (обычно доступный на Unix-подобных платформах и может быть установлен в Windows).

Если все это собирается купить вас, это альтернативное решение проблемы, которую вы описали, однако я бы рекомендовал просто использовать ответ от @Svalorzen.

Ответ 3

Прежде всего, держите руки CMAKE_CXX_FLAGS от CMAKE_CXX_FLAGS ! Используйте target_compile_options:

target_compile_options(<YOUR_TARGET> PRIVATE ${MY_FLAGS})

Чтобы расширить другие списки, используйте list:

list(APPEND <YOUR_LIST> <ITEM_TO_ADD>)