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_minimum_required(VERSION 2.8)
|
||||||
#cmake_policy(SET CMP0018 NEW)
|
#cmake_policy(SET CMP0018 NEW)
|
||||||
|
|
||||||
|
project(gmio)
|
||||||
|
|
||||||
include(CheckIncludeFiles)
|
include(CheckIncludeFiles)
|
||||||
include(CheckFunctionExists)
|
include(CheckFunctionExists)
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
@ -37,7 +39,6 @@ include(CheckCSourceCompiles)
|
|||||||
include(CheckTypeSize)
|
include(CheckTypeSize)
|
||||||
include(CMakeDependentOption)
|
include(CMakeDependentOption)
|
||||||
|
|
||||||
project(gmio)
|
|
||||||
set(GMIO_VERSION_MAJOR 0)
|
set(GMIO_VERSION_MAJOR 0)
|
||||||
set(GMIO_VERSION_MINOR 4)
|
set(GMIO_VERSION_MINOR 4)
|
||||||
set(GMIO_VERSION_PATCH 0)
|
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
|
# Disable warnings -Wno-missing-braces -Wno-missing-field-initializers
|
||||||
# in case GCC wrongly warns about universal zero initializer {0}
|
# in case GCC wrongly warns about universal zero initializer {0}
|
||||||
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
|
# 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(
|
check_c_source_compiles(
|
||||||
"struct data { char array[128]; };
|
"struct data { char array[128]; };
|
||||||
int main() {
|
int main() {
|
||||||
@ -170,7 +171,7 @@ if(CMAKE_C_COMPILER_IS_GCC_COMPATIBLE)
|
|||||||
return d.array[0];
|
return d.array[0];
|
||||||
}"
|
}"
|
||||||
GMIO_GCC_DOESNT_WARN_UNIVERSAL_0_INITIALIZER)
|
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)
|
if (NOT GMIO_GCC_DOESNT_WARN_UNIVERSAL_0_INITIALIZER)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces -Wno-missing-field-initializers")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces -Wno-missing-field-initializers")
|
||||||
endif()
|
endif()
|
||||||
@ -214,8 +215,6 @@ if(MSVC)
|
|||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS}")
|
|
||||||
|
|
||||||
# Some compilers (like GCC v4.9) don't disable <stdint.h> when needed
|
# Some compilers (like GCC v4.9) don't disable <stdint.h> when needed
|
||||||
check_include_files(stdint.h GMIO_HAVE_STDINT_H)
|
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.
|
## 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
|
set(ROOTDIR_LIB3MF ${CMAKE_SOURCE_DIR} CACHE PATH
|
||||||
"Directory where the Lib3MF library resides")
|
"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)
|
include_directories(${ROOTDIR_LIB3MF}/Include)
|
||||||
add_executable(benchmark_lib3mf main.cpp ${COMMONS_FILES})
|
add_executable(benchmark_lib3mf main.cpp ${COMMONS_FILES})
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
## 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_SOURCE_DIR}/src)
|
||||||
include_directories(${CMAKE_BINARY_DIR}/src/gmio_core) # For cmake generated headers
|
include_directories(${CMAKE_BINARY_DIR}/src/gmio_core) # For cmake generated headers
|
||||||
include_directories(${CMAKE_SOURCE_DIR}/tests/fake_support/opencascade)
|
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.
|
## 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)
|
file(GLOB GMIO_FAKEOCC_HEADERS opencascade/*.hxx opencascade/*.h)
|
||||||
set(GMIO_FAKEOCC_HEADERS ${GMIO_FAKEOCC_HEADERS})
|
set(GMIO_FAKEOCC_HEADERS ${GMIO_FAKEOCC_HEADERS})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user