设置cmake前缀编译器命令

时间:2017-06-19 20:04:08

标签: profiler prefix

我需要分析一个C / C ++程序。我正在使用cmake,我的所有编译配置都在CMakeList中设置。在这个post中,有一种丑陋的方法可以做到这一点。还有另一个解决方案here,但它在我的情况下不起作用。所以,正如here所解释的那样,我必须翻译像这样的配置

export CC="skin icc"
export CXX="skin icpc"
....
make

or

make CC="skin icc" CXX="skin icpc"....

进入CMakeList配置。在我目前的CMakeList中,我还没有设置编译器。只定义了标志

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fopenmp -o3")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fopenmp -o3")

非常欢迎任何帮助。感谢。

1 个答案:

答案 0 :(得分:-1)

这是本案所解决的问题。设置项目名称后,我添加了以下脚本片段:

set(PROFILER_ENABLED ON)

set(SCOREP_PROFILER "scorep")
set(COMPILER_FLAGS "-Wall -fopenmp -o3")
set(CXX_COMPILER_FLAGS "g++ ${COMPILER_FLAGS}")
set(C_COMPILER_FLAGS "gcc ${COMPILER_FLAGS}")

if(PROFILER_ENABLED)
    foreach(LANG C CXX)
        message(STATUS "Enabling scorep for ${LANG}")
        set(CMAKE_${LANG}_COMPILER "${SCOREP_PROFILER}")
        set(CMAKE_${LANG}_FLAGS "${${LANG}_COMPILER_FLAGS}")
    endforeach()
else()
    message(STATUS "Default compilers")
    foreach(LANG C CXX)
        set(CMAKE_${LANG}_FLAGS "${COMPILER_FLAGS}")
    endforeach()
endif()