aneiras recomendadas de usar o CMake com o icc através das opções de configuraçã

Gostaria de usar o compilador Intel icc (ou icpc) com um projeto baseado no CMake (no Linux, para o que vale a pena). É claro que posso exportar a variável CXX ao chamar cmake, por exemplo gosta

CXX=icpc cmake ../

e isso funciona bem. Gostaria, no entanto, de disponibilizar essa opção através de uma opção personalizada. Para isso, analiso a opção personalizada, por exemplo,

cmake -DMY_COMPILER_OPTION=Intel ..

Com

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 ()

E definirCMAKE_CXX_COMPILER junto com alguns sinalizadores do compilador. Isso também funciona, no entanto, existe um importante "mas".

Eu também gostaria de usar a opção-ipo (otimização interprocedural) para o meu código ao compilar com o icc e preciso compilar uma biblioteca estática dentro do processo de compilação. Para que isso funcione, preciso usar oxiar (e tambémxilink Eu acho)

cmake realmente oferece uma propriedade especial para este

set_property(TARGET mytarget PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)

de qualquer maneira isso parece funcionar corretamente quando o compilador foi definido através da variável de ambiente (então xiar é usado). Ao definir o compilador viaCMAKE_CXX_COMPILER esta propriedade é ignorad

Há outra maneira de fazer isso?. Alguma maneira recomendada? Ou pelo menos uma solução alternativa?

questionAnswers(6)

yourAnswerToTheQuestion