cmake: enable c++11 when required
This commit is contained in:
parent
7ff9b74c13
commit
843af6f4e9
@ -30,6 +30,8 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
#cmake_policy(SET CMP0018 NEW)
|
||||
|
||||
project(gmio)
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckSymbolExists)
|
||||
@ -37,7 +39,6 @@ include(CheckCSourceCompiles)
|
||||
include(CheckTypeSize)
|
||||
include(CMakeDependentOption)
|
||||
|
||||
project(gmio)
|
||||
set(GMIO_VERSION_MAJOR 0)
|
||||
set(GMIO_VERSION_MINOR 4)
|
||||
set(GMIO_VERSION_PATCH 0)
|
||||
@ -162,7 +163,7 @@ if(CMAKE_C_COMPILER_IS_GCC_COMPATIBLE)
|
||||
# Disable warnings -Wno-missing-braces -Wno-missing-field-initializers
|
||||
# in case GCC wrongly warns about universal zero initializer {0}
|
||||
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} -Werror=missing-braces")
|
||||
set(CMAKE_REQUIRED_FLAGS "-Werror=missing-braces")
|
||||
check_c_source_compiles(
|
||||
"struct data { char array[128]; };
|
||||
int main() {
|
||||
@ -170,7 +171,7 @@ if(CMAKE_C_COMPILER_IS_GCC_COMPATIBLE)
|
||||
return d.array[0];
|
||||
}"
|
||||
GMIO_GCC_DOESNT_WARN_UNIVERSAL_0_INITIALIZER)
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS}") # Restore CMAKE_REQUIRED_FLAGS
|
||||
set(CMAKE_REQUIRED_FLAGS) # Popup changes
|
||||
if (NOT GMIO_GCC_DOESNT_WARN_UNIVERSAL_0_INITIALIZER)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces -Wno-missing-field-initializers")
|
||||
endif()
|
||||
@ -214,8 +215,6 @@ if(MSVC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS}")
|
||||
|
||||
# Some compilers (like GCC v4.9) don't disable <stdint.h> when needed
|
||||
check_include_files(stdint.h GMIO_HAVE_STDINT_H)
|
||||
|
||||
|
@ -27,13 +27,11 @@
|
||||
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#############################################################################
|
||||
|
||||
include(../../scripts/enable_cxx11.cmake)
|
||||
|
||||
set(ROOTDIR_LIB3MF ${CMAKE_SOURCE_DIR} CACHE PATH
|
||||
"Directory where the Lib3MF library resides")
|
||||
|
||||
if(CMAKE_C_COMPILER_IS_GCC_COMPATIBLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
endif()
|
||||
|
||||
include_directories(${ROOTDIR_LIB3MF}/Include)
|
||||
add_executable(benchmark_lib3mf main.cpp ${COMMONS_FILES})
|
||||
|
||||
|
@ -27,6 +27,8 @@
|
||||
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#############################################################################
|
||||
|
||||
include(../scripts/enable_cxx11.cmake)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/src)
|
||||
include_directories(${CMAKE_BINARY_DIR}/src/gmio_core) # For cmake generated headers
|
||||
include_directories(${CMAKE_SOURCE_DIR}/tests/fake_support/opencascade)
|
||||
|
18
scripts/enable_cxx11.cmake
Normal file
18
scripts/enable_cxx11.cmake
Normal file
@ -0,0 +1,18 @@
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX
|
||||
OR CMAKE_CXX_COMPILER MATCHES ".*clang")
|
||||
check_cxx_compiler_flag("-std=c++11" GMIO_COMPILER_SUPPORTS_CXX11)
|
||||
if(GMIO_COMPILER_SUPPORTS_CXX11)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
else()
|
||||
check_cxx_compiler_flag("-std=c++0x" GMIO_COMPILER_SUPPORTS_CXX0X)
|
||||
if(GMIO_COMPILER_SUPPORTS_CXX0X)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
else()
|
||||
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Note : cmake 3.1 introduced set_property(TARGET tgt PROPERTY CXX_STANDARD 11)
|
@ -27,6 +27,8 @@
|
||||
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#############################################################################
|
||||
|
||||
include(../../scripts/enable_cxx11.cmake)
|
||||
|
||||
file(GLOB GMIO_FAKEOCC_HEADERS opencascade/*.hxx opencascade/*.h)
|
||||
set(GMIO_FAKEOCC_HEADERS ${GMIO_FAKEOCC_HEADERS})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user