Я только начал использовать CMake для некоторых личных и школьных проектов, и я был в шоке от незначительной проблемы.
Скажем, я пытаюсь собрать компиляцию на С++ под несколькими компиляторами (g++, cl и bcc32 в этом случае). У меня есть разные ключи командной строки для каждого компилятора, и то, что я пытался сделать, это в основном создать каталог gnu/ms/borland и создать там материал CMake (введя каталоги и сделав cmake -DCMAKE_CXX_COMPILER=g++
.. в каталоге gnu, например).
В CMakeLists.txt в каталоге верхнего уровня я попытался сделать что-то по строкам:
if(CMAKE_CXX_COMPILER STREQUAL g++)
set(CMAKE_CXX_FLAGS "-Wextra -Wall -ansi -pedantic")
И так далее с elsifs для других компиляторов, но это, похоже, не работает правильно - он полностью удаляет CXXFLAGS
. Строка работает, если я делаю файл совершенно безусловным (т.е. Просто предположим g++ и используем флагов g++.).
Что я здесь делаю неправильно, или есть лучший способ справиться с такой проблемой?