2013-11-27 5 views
8

Wie füge ich ein Compiler-Flag (ich möchte es anhängen, nicht die anderen überschreiben) zu einer einzelnen Übersetzungseinheit mit cmake?Compiler-Flags an eine Datei anhängen mit CMake

Ich habe versucht, mit

set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1") 

aber es funktioniert nicht .. irgendwelche Ratschläge, wie das zu tun?

Antwort

15

Die korrekte Eigenschaft zum Festlegen der Flags einer Quelldatei lautet COMPILE_FLAGS. Da dies eine String-Eigenschaft ist, die richtige Art und Weise zusätzliche Optionen zu anhängen ist die APPEND_STRING Variante des set_property Befehl zu verwenden:

set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ") 

Die APPEND_STRING Option ist nur mit CMake 2.8.6 oder höher zur Verfügung.

2

Try this:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1") 

By the way, einige Eigenschaften sind immer angehängt, zum Beispiel COMPILE_FLAGS. Für diejenigen, die Sie brauchen nichts Besonderes zu tun, setzen sie einfach und sie angehängt bekommen :)

3

Sie sind fast da, sollte diese Arbeit:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1) 

Die Art spezifische Helfer (wie set_source_files_properties()) kann manchmal nützlich sein, aber sie haben eine sehr simplified Schnittstelle. Für nicht-triviale Dinge müssen Sie set_property() verwenden. Ich habe festgestellt, dass ich die Helfer wirklich selten benutze.