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?