Using cmake_cxx_flags instead of add_definitions

This commit is contained in:
Strahinja Val Markovic 2012-07-09 13:58:56 -07:00
parent 0a553bf23c
commit 1df2a5d360
5 changed files with 29 additions and 12 deletions

View File

@ -30,6 +30,7 @@ function! youcompleteme#Enable()
augroup youcompleteme
autocmd!
autocmd CursorMovedI * call s:OnMovedI()
" BufWinEnter/Leave?
autocmd BufRead,BufEnter * call s:OnBufferVisit()
autocmd CursorHold,CursorHoldI * call s:OnCursorHold()
augroup END

View File

@ -77,7 +77,7 @@ add_library( BoostParts ${SOURCES} )
if( CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG )
# No warnings. We just use Boost as is so warnings coming from it are just
# noise.
add_definitions( -w )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
endif()
#############################################################################

View File

@ -21,19 +21,20 @@ project( YouCompleteMe )
# This is needed so that on macs, the library is built in both 32 bit and 64 bit
# versions. Without this python might refuse to load the module, depending on
# how python was built.
# On Mac, boost needs to be compiled universal as well. For brew, that's
# On Mac, boost needs to be compiled universal as well, if used instead of the
# included BoostParts lib. For brew, that's
# "brew install boost --universal"
set( CMAKE_OSX_ARCHITECTURES "i386;x86_64" )
# Force release build, speed is of the essence
if ( NOT CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE RELEASE )
endif()
if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
set( COMPILER_IS_CLANG true )
endif()
# Force release build by default, speed is of the essence
if ( NOT CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE Release )
endif()
# Determining the presence of C++11 support in the compiler
set( CPP11_AVAILABLE false )
if ( CMAKE_COMPILER_IS_GNUCXX )
@ -46,16 +47,23 @@ elseif( COMPILER_IS_CLANG )
set( CPP11_AVAILABLE true )
endif()
# When used with Clang, adding the -std=c++0x flag to CMAKE_CXX_FLAGS will cause
# the compiler to output a warning during linking:
# clang: warning: argument unused during compilation: '-std=c++0x'
# This is caused by cmake passing this flag to the linking stage which it
# shouldn't do. It's ignored so it does no harm, but the warning is annoying and
# there's no way around the problem (the flag is correctly used during the
# compilation stage). We could use add_definitions(-std=c++0x), but this will
# break the llvm build since the flag will then be used when compiling C code
# too. Sadly there's no way around the warning.
if ( CPP11_AVAILABLE )
message( "Your C++ compiler supports C++11, compiling in that mode." )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x" )
else()
message(
"Your C++ compiler does NOT support C++11, compiling in C++03 mode." )
endif()
#-Wc++11-extensions
add_subdirectory( llvm )
add_subdirectory( BoostParts )
add_subdirectory( ycm )

View File

@ -80,7 +80,14 @@ set_target_properties( ${PROJECT_NAME} PROPERTIES
if( CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG )
# We want all warnings, and warnings should be treated as errors
add_definitions( -Wall -Wextra -Werror )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror")
endif()
#############################################################################
# We want warnings if we accidentally use C++11 features
if ( COMPILER_IS_CLANG )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wc++11-extensions")
endif()
#############################################################################

View File

@ -20,7 +20,8 @@ cmake_minimum_required( VERSION 2.8 )
# The gtest library triggers these silly warnings, so we turn them off
if ( COMPILER_IS_CLANG )
add_definitions( -Wno-long-long -Wno-variadic-macros )
set( CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-long-long -Wno-variadic-macros" )
endif()
add_subdirectory( gmock )