[CMake] Specifying different compilers for subsets of a project

George Zagaris george.zagaris at gmail.com
Tue Oct 14 22:23:57 EDT 2014


Dear all,

I am working on a project where on certain platforms, namely, on a BG/Q or
Cray, we have to cross-compile the code, but still, there are parts of the
code that should only be compiled for the front end, login nodes.

Typically, we have a toolchain file, which among other things sets:
- CMAKE_CXX_COMPILER
- CMAKE_C_COMPILER
- CMAKE_FORTRAN_COMPILER

to the respective cross-compilers available on the target platform.

This compiles everything for the back-end.

The obvious way to compile front-end tools is to create another directory,
e.g., "front-end-build" and run cmake therein to re-configure and build
with a front-end compiler.

However, since only a relatively small subset of the files needs to be
compiled for the front-end, it is desirable to do this within the same
build, which leads to my question:

Is it possible to tell CMake to build certain files with a different
compiler? I know there is a way to set file properties to control the
compiler flags of certain files. Is there a "blessed" approach to control
the compiler for certain files and/or directories (and avoid things like
set(CMAKE_CXX_COMPILER...) within a CMakeLists file)?

Thank you very much for all your help.

Best,
George
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20141014/b5fd3ee8/attachment.html>


More information about the CMake mailing list