필자는 인텔 컴파일러 icc (또는 icpc)를 CMake 기반 프로젝트 (Linux에서 가치있는 것을 위해)와 함께 사용하고자합니다. 예를 들어 cmake를 호출 할 때 CXX 변수를 내보낼 수 있습니다. like구성 옵션을 통해 CMake를 icc와 함께 사용하는 데 권장되는 방법은 무엇입니까?
CXX=icpc cmake ../
입니다. 나는 그러나 선택의 여지가 사용자 지정 옵션을 통해 사용할 수 있도록하고 싶습니다. 이를 위해 맞춤 옵션을 구문 분석합니다 (예 :
cmake -DMY_COMPILER_OPTION=Intel ..
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()
같은 일부 컴파일러 플래그와 함께
CMAKE_CXX_COMPILER
을 설정합니다. 이것은 또한 작동하지만 중요한 "but"가 있습니다.
icc로 컴파일 할 때 -ipo
(프로 시저 간 최적화) 옵션을 사용하고 싶습니다. 빌드 프로세스에서 정적 라이브러리를 컴파일해야합니다. 이 작업을 위해서는 Intel의 (그리고 아마도 xilink
이라고 생각합니다)을 사용해야합니다.
cmake 실제로 그러나 이것은 단지에 컴파일러가 (사용 후 xiar) 환경 변수를 통해 설정 한 때 제대로 작동하는 것이
set_property(TARGET mytarget PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)
위한 특별한 속성을 제공합니다. CMAKE_CXX_COMPILER
을 통해 컴파일러를 설정할 때이 속성은 무시됩니다.
다른 방법이 있습니까? 추천 된 방법은? 또는 적어도 해결 방법이 있습니까?
예, CMake는 불변으로 컴파일러를 치료하기 위해 좋아하는 (필요하지 않은 중 언어 제거) . – mabraham