[CMake] How to set platform-specific compiler-options from within CMakeFiles

Werner Smekal smekal at iap.tuwien.ac.at
Thu Jun 5 14:43:17 EDT 2008


Hi,

just use ADD_DEFINITION, e.g.

# Disable warnings about deprecated functions (Visual C++ 2005)
if(MSVC_VERSION GREATER 1399)
  ADD_DEFINITIONS("/D_CRT_SECURE_NO_DEPRECATE")
endif(MSVC_VERSION GREATER 1399)

You could just use "if(WIN32)" but than for all compilers on Windows
this option would be set. if(MSVC) should work for all Visual C++
compilers.

HTH,
Werner
 


On Thu, 2008-06-05 at 16:35 +0200, Martin Apel wrote:
> Hi all,
> 
> I am trying to set the CMAKE_CXX_FLAGS or CMAKE_CXX_FLAGS_INIT variable, 
> such that it contains flags to turn off specific warnings for the Visual 
> Studio compiler. I definitely want to set these additional flags from 
> within a CMakeFile, specifying them on the command line or interactively 
> is not an option.
> I have included a Windows-specific file by using
> INCLUDE (${CMAKE_SYSTEM_NAME}.cmake)
> 
> The file Windows.cmake contains the line
> SET (ENV{CXXFLAGS} "/wd4251")
> 
> However this only works after the PROJECT line within the CMakeFile, 
> because before it CMAKE_SYSTEM_NAME seems to be unset. On the other 
> hand, when writing the include statement after the project command, the 
> CMAKE_CXX_FLAGS seem already to be set. If possible I would like to 
> specify those flags as initial values, avoiding to use the force option 
> of the set command.
> 
> What is the recommended way to add platform-specific compiler flags from 
> within CMakeFiles?
> 
> Any help would be appreciated.
> 
> Martin
> 
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list