mirror of
https://github.com/ChaiScript/ChaiScript.git
synced 2026-02-14 14:19:57 +08:00
Add option to compile in C++17 mode for testing
This commit is contained in:
parent
36e61dec0a
commit
700a620552
@ -22,6 +22,7 @@ option(BUILD_SAMPLES "Build Samples Folder" FALSE)
|
|||||||
option(RUN_FUZZY_TESTS "Run tests generated by AFL" FALSE)
|
option(RUN_FUZZY_TESTS "Run tests generated by AFL" FALSE)
|
||||||
option(USE_STD_MAKE_SHARED "Use std::make_shared instead of chaiscript::make_shared" FALSE)
|
option(USE_STD_MAKE_SHARED "Use std::make_shared instead of chaiscript::make_shared" FALSE)
|
||||||
option(RUN_PERFORMANCE_TESTS "Run Performance Tests" FALSE)
|
option(RUN_PERFORMANCE_TESTS "Run Performance Tests" FALSE)
|
||||||
|
option(BUILD_IN_CPP17_MODE "Build with C++17 flags" FALSE)
|
||||||
|
|
||||||
mark_as_advanced(USE_STD_MAKE_SHARED)
|
mark_as_advanced(USE_STD_MAKE_SHARED)
|
||||||
|
|
||||||
@ -150,12 +151,20 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
|||||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
|
||||||
if(GCC_VERSION VERSION_LESS 4.9)
|
if(GCC_VERSION VERSION_LESS 4.9)
|
||||||
set(CPP11_FLAG "-std=c++1y")
|
set(CPP14_FLAG "-std=c++1y")
|
||||||
else()
|
else()
|
||||||
set(CPP11_FLAG "-std=c++14")
|
if (BUILD_IN_CPP17_MODE)
|
||||||
|
set(CPP14_FLAG "-std=c++1z")
|
||||||
|
else()
|
||||||
|
set(CPP14_FLAG "-std=c++14")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(CPP11_FLAG "-std=c++14")
|
if (BUILD_IN_CPP17_MODE)
|
||||||
|
set(CPP14_FLAG "-std=c++1z")
|
||||||
|
else()
|
||||||
|
set(CPP14_FLAG "-std=c++14")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
@ -179,7 +188,7 @@ if(MSVC)
|
|||||||
# how to workaround or fix the error. So I'm disabling it globally.
|
# how to workaround or fix the error. So I'm disabling it globally.
|
||||||
add_definitions(/wd4503)
|
add_definitions(/wd4503)
|
||||||
else()
|
else()
|
||||||
add_definitions(-Wall -Wextra -Wconversion -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wcast-qual -Wunused -Woverloaded-virtual -pedantic ${CPP11_FLAG})
|
add_definitions(-Wall -Wextra -Wconversion -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wcast-qual -Wunused -Woverloaded-virtual -pedantic ${CPP14_FLAG})
|
||||||
|
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
add_definitions(-Weverything -Wno-c++98-compat-pedantic -Wno-c++98-compat -Wno-documentation -Wno-switch-enum -Wno-weak-vtables -Wno-missing-prototypes -Wno-padded -Wno-missing-noreturn -Wno-exit-time-destructors -Wno-documentation-unknown-command)
|
add_definitions(-Weverything -Wno-c++98-compat-pedantic -Wno-c++98-compat -Wno-documentation -Wno-switch-enum -Wno-weak-vtables -Wno-missing-prototypes -Wno-padded -Wno-missing-noreturn -Wno-exit-time-destructors -Wno-documentation-unknown-command)
|
||||||
@ -197,12 +206,12 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|||||||
|
|
||||||
if(USE_LIBCXX)
|
if(USE_LIBCXX)
|
||||||
add_definitions(-stdlib=libc++)
|
add_definitions(-stdlib=libc++)
|
||||||
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP11_FLAG} -stdlib=libc++")
|
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP14_FLAG} -stdlib=libc++")
|
||||||
else()
|
else()
|
||||||
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP11_FLAG}")
|
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP14_FLAG}")
|
||||||
endif()
|
endif()
|
||||||
elseif(CMAKE_COMPILER_IS_GNUCC)
|
elseif(CMAKE_COMPILER_IS_GNUCC)
|
||||||
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP11_FLAG}")
|
set(LINKER_FLAGS "${LINKER_FLAGS} ${CPP14_FLAG}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# limitations in MinGW require us to make an optimized build
|
# limitations in MinGW require us to make an optimized build
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user