CMake und CXX_STANDARD

In CMake kann man definieren, mit welchem C++-Standard das Projekt gebaut werden soll. Dazu wird die Eigenschaft CXX_STANDARD für ein bestimmtes Target geändert. Das kann z.B. so geschrieben werden:

set_property(TARGET executable_name PROPERTY CXX_STANDARD 11)

Das kann man an einem einfachen Beispiel auch sehen. Wenn die Beispiel CMakeLists.txt so aussieht:

project(cxx_standard_ex1)
set(SOURCES main.cpp)
add_executable(${PROJECT_NAME} ${SOURCES})
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)

und die dann mit den Befehlen

cmake -G "Unix Makefiles" .
make VERBOSE=1

aufgerufen werden, dann sieht man in der Ausgabe, dass die Quelltextdatei main.cpp mit einem anderen C++-Standard kompiliert wird:

/usr/bin/c++ -std=gnu++11 -o CMakeFiles/cxx_standard_ex1.dir/main.o -c /project/cxx_standard/main.cpp

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.