mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
CMake
- Fixed the C++11 config to actually check for availability of C++11 before trying to use it. - Custom CXX flags no longer ignored on some platforms.
This commit is contained in:
parent
cc1c063925
commit
0d096a5a42
1 changed files with 25 additions and 3 deletions
|
@ -15,12 +15,35 @@ set (PROJECT_VERSION "2.4.2")
|
||||||
OPTION(USE_GNUTLS "Build gnutls support." ON)
|
OPTION(USE_GNUTLS "Build gnutls support." ON)
|
||||||
|
|
||||||
message ("CMAKE_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}")
|
message ("CMAKE_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
||||||
|
include (CheckCXXCompilerFlag)
|
||||||
|
|
||||||
|
# NOTE: If we are to actually use C++11 features, we should either require
|
||||||
|
# a compiler that supports the -std=c++11 flag or check for the
|
||||||
|
# features used.
|
||||||
|
# Relying on -std=c++0x or even -std=gnu++0x is highly volatile.
|
||||||
|
|
||||||
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" _HAS_CXX11)
|
||||||
|
CHECK_CXX_COMPILER_FLAG("-std=c++0x" _HAS_CXX0X)
|
||||||
|
CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" _HAS_GNU0X)
|
||||||
|
|
||||||
|
if (_HAS_CXX11)
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||||
|
elseif (_HAS_CXX0X)
|
||||||
|
message (WARNING "Enabling -std=c++0x draft compile flag. Please try using an up to date compiler if you run into any problems!")
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||||
|
elseif (_HAS_GNU0X)
|
||||||
|
message (WARNING "Enabling -std=gnu++0x draft compile flag. You're probably in for a bad time, please try using an up to date compiler!")
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
||||||
|
else (_HAS_CXX11)
|
||||||
|
message (FATAL_ERROR "C++11 support missing. Try upgrading your C++ compiler! If you have a good reason for using an outdated compiler, please let us know at support@taskwarrior.org!")
|
||||||
|
endif (_HAS_CXX11)
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
set (LINUX true)
|
set (LINUX true)
|
||||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
set (DARWIN true)
|
set (DARWIN true)
|
||||||
set (CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
|
set (CMAKE_CXX_FLAGS "-stdlib=libc++")
|
||||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD")
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "kFreeBSD")
|
||||||
set (KFREEBSD true)
|
set (KFREEBSD true)
|
||||||
elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
||||||
|
@ -35,7 +58,6 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "GNU")
|
||||||
set (GNUHURD true)
|
set (GNUHURD true)
|
||||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "CYGWIN")
|
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "CYGWIN")
|
||||||
set (CYGWIN true)
|
set (CYGWIN true)
|
||||||
set (CMAKE_CXX_FLAGS "-std=gnu++0x")
|
|
||||||
else (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
else (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
set (UNKNOWN true)
|
set (UNKNOWN true)
|
||||||
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue