[CMake] CXX flags applied to C source

Kelly Burkhart kelly.burkhart at gmail.com
Mon Jul 25 09:20:55 EDT 2011


Hi, I have a bunch of compiler flags specified with add_definitions as so:

if(LINUX)
  tb_compiler_version(TB_GCC_VERSION)
  add_definitions(${CMAKE_CXX_FLAGS} "-g")
  add_definitions(${CMAKE_CXX_FLAGS} "-DBOOST_SIGNALS_NAMESPACE=tb_signals")
  add_definitions(${CMAKE_CXX_FLAGS} "-D__x86__")
  add_definitions(${CMAKE_CXX_FLAGS} "-D__linux__")
  add_definitions(${CMAKE_CXX_FLAGS} "-D__OSVERSION__=2")
  add_definitions(${CMAKE_CXX_FLAGS} "-D_REENTRANT")
  add_definitions(${CMAKE_CXX_FLAGS} "-Wall")
  add_definitions(${CMAKE_CXX_FLAGS} "-Wno-unused")
  add_definitions(${CMAKE_CXX_FLAGS} "-Wno-comment")
  add_definitions(${CMAKE_CXX_FLAGS} "-Wno-sign-compare")

  if("${TB_GCC_VERSION}" VERSION_GREATER "4.2")
    add_definitions(${CMAKE_CXX_FLAGS} "-fno-strict-aliasing")
  endif()

  if("${TB_GCC_VERSION}" VERSION_GREATER "4.3")
    add_definitions(${CMAKE_CXX_FLAGS} "-Wno-ignored-qualifiers")
    add_definitions(${CMAKE_CXX_FLAGS} "-Wnon-virtual-dtor")
  endif()

  add_definitions(${CMAKE_CXX_FLAGS} "-W")
else()
...

The CXX flags are applied to C compiles which is mostly what I want,
but there are some options (-Wnon-virtual-dtor for instance) that only
apply to C++.  How can I specifiy an option should only be applied to
C++ but not to C?

Thanks,

-Kelly


More information about the CMake mailing list