Empfohlene Möglichkeiten, um CMake mit icc über die Konfiguration Optionen?

Ich würde gerne die Intel-compiler icc (oder icpc) mit einem CMake-basierten Projekt (unter Linux, für was es Wert ist). Ich kann natürlich exportieren Sie die CXX-variable beim Aufruf von cmake, z.B. wie

CXX=icpc cmake ../

und dies funktioniert gut. Ich möchte jedoch, diese Entscheidung zu treffen über die option "Benutzerdefiniert". Dafür habe ich parse option Benutzerdefiniert, z.B.

cmake -DMY_COMPILER_OPTION=Intel ..

als

IF (MY_COMPILER_OPTION STREQUAL "Intel")
  MESSAGE(STATUS "** Compiling with Intel settings **")
  SET(CMAKE_CXX_COMPILER "icpc")
  SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -w")
  SET(CMAKE_CXX_FLAGS_DEBUG "-g")
ENDIF ()

und setzen CMAKE_CXX_COMPILER zusammen mit einigen compiler-flags. Dies funktioniert auch, aber es ist ein wichtiges "aber".

Ich würde auch gerne die option -ipo (interprozedurale Optimierung) für meinen code beim kompilieren mit icc-plus brauche ich das kompilieren einer statischen library in den build-Prozess. Für diese Arbeit, ich brauche für die Verwendung von Intel xiar (und auch xilink denke ich).

cmake bietet tatsächlich eine spezielle Eigenschaft für diese

set_property(TARGET mytarget PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)

aber dies scheint nur funktioniert, wenn der compiler eingestellt wurde über die Umgebungsvariable (dann xiar verwendet wird). Bei der Einstellung der compiler über CMAKE_CXX_COMPILERwird diese Eigenschaft ignoriert.

Gibt es einen anderen Weg, dies zu tun?. Einige empfohlene Weg? Oder zumindest ein work-around?

InformationsquelleAutor janitor048 | 2012-02-03
Schreibe einen Kommentar