[CMake] Build library with specific compil flags for a few files
pellegrini
pellegrini at ill.fr
Tue Sep 28 10:08:39 EDT 2010
Hello everybody,
I have a library for which almost all the files should be compiled (e.g.
g95) with the same compilation flags (that I will call later
flag_debug, flag_release ...) excepted a few ones for which I have to
use slightly different compilation flags (called later flag1_debug,
flag1_release ...).
As in both cases the flags are different from the default ones, I was
told on the cmake list to create a personal Compiler/G95-Fortran.cmake
file that was placed in my Src directory and that contains the following
lines:
set(CMAKE_Fortran_FLAGS_INIT "")
set(CMAKE_Fortran_FLAGS_DEBUG_INIT flag_debug)
set(CMAKE_Fortran_FLAGS_RELEASE_INIT flag_release)
set(CMAKE_Fortran_MODDIR_FLAG "-fmod=")
set(CMAKE_Fortran_VERBOSE_FLAG "-v")
This file allowing to avoid the declaration of the flags in the
CMakeLists.txt file. But, how to proceed for the few files for which I
have to use
different compiler flags ? In that case, I do not see any way to escape
from writing specifically the flags in the CMakeLists.txt file with
command such as:
if(CMAKE_BUILD_TYPE STREQUAL RELEASE)
set_source_files_properties(File1 PROPERTIES COMPILE_FLAGS
flag1_release)
set_source_files_properties(File2 PROPERTIES COMPILE_FLAGS
flag1_release) ...
elseif(CMAKE_BUILD_TYPE STREQUAL DEBUG)
set_source_files_properties(File1 PROPERTIES COMPILE_FLAGS flag1_debug)
set_source_files_properties(File2 PROPERTIES COMPILE_FLAGS
flag1_debug) ...
...
endif()
would you have any idea about how to esacpe from this kind of
implementation ? is that so ugly ?
thanks
Eric
--
Eric Pellegrini
Calcul Scientifique
Insitut Laue-Langevin
Grenoble, France
More information about the CMake
mailing list