diff --git a/CMakeLists.txt b/CMakeLists.txt index df8c2fa..0dca3b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,8 @@ if(RDI_SHARED) add_library(rdi-lib SHARED ${RDI_LIB_SOURCES}) set_property(TARGET rdi-lib PROPERTY C_STANDARD 17) set_property(TARGET rdi-lib PROPERTY CXX_STANDARD 17) + set_property(TARGET rdi-lib PROPERTY C_STANDARD_REQUIRED ON) + set_property(TARGET rdi-lib PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET rdi-lib PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") set_target_properties(rdi-lib PROPERTIES VERSION 1.0.0) @@ -123,6 +125,8 @@ if(RDI_STATIC) add_library(rdi-libstatic STATIC ${RDI_LIB_SOURCES}) set_property(TARGET rdi-libstatic PROPERTY C_STANDARD 17) set_property(TARGET rdi-libstatic PROPERTY CXX_STANDARD 17) + set_property(TARGET rdi-libstatic PROPERTY C_STANDARD_REQUIRED ON) + set_property(TARGET rdi-libstatic PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET rdi-libstatic PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") set_target_properties(rdi-libstatic PROPERTIES VERSION 1.0.0) @@ -177,18 +181,24 @@ if(BUILD_TOOLS) add_executable(rdi-debug-tools ./tools/RDIDebug.cpp) set_property(TARGET rdi-debug-tools PROPERTY C_STANDARD 17) set_property(TARGET rdi-debug-tools PROPERTY CXX_STANDARD 17) + set_property(TARGET rdi-debug-tools PROPERTY C_STANDARD_REQUIRED ON) + set_property(TARGET rdi-debug-tools PROPERTY CXX_STANDARD_REQUIRED ON) set_target_properties(rdi-debug-tools PROPERTIES OUTPUT_NAME "RDI-debug") list(APPEND RDI_TARGETS_LIST rdi-debug-tools) add_executable(erso-debug-tools ./tools/ErsoDebug.cpp) set_property(TARGET erso-debug-tools PROPERTY C_STANDARD 17) set_property(TARGET erso-debug-tools PROPERTY CXX_STANDARD 17) + #set_property(TARGET erso-debug-tools PROPERTY C_STANDARD_REQUIRED ON) + #set_property(TARGET erso-debug-tools PROPERTY CXX_STANDARD_REQUIRED ON) set_target_properties(erso-debug-tools PROPERTIES OUTPUT_NAME "Erso-debug") list(APPEND RDI_TARGETS_LIST erso-debug-tools) add_executable(krennic-debug-tools ./tools/KrennicDebug.cpp) set_property(TARGET krennic-debug-tools PROPERTY C_STANDARD 17) set_property(TARGET krennic-debug-tools PROPERTY CXX_STANDARD 17) + #set_property(TARGET krennic-debug-tools PROPERTY C_STANDARD_REQUIRED ON) + #set_property(TARGET krennic-debug-tools PROPERTY CXX_STANDARD_REQUIRED ON) set_target_properties(krennic-debug-tools PROPERTIES OUTPUT_NAME "Krennic-debug") list(APPEND RDI_TARGETS_LIST krennic-debug-tools) diff --git a/src/RDI.cpp b/src/RDI.cpp index 5f138e8..e9149c1 100644 --- a/src/RDI.cpp +++ b/src/RDI.cpp @@ -7,6 +7,10 @@ * */ +#if !(__cplusplus < 201703L) && !(_MSVC_LANG < 201703L) +#error "This code run on C++17 or upper." +#endif + #if defined(RDI_DLL) # define RDI_DLLBUILD #endif diff --git a/tools/RDIDebug.cpp b/tools/RDIDebug.cpp index 298a684..d2dac38 100644 --- a/tools/RDIDebug.cpp +++ b/tools/RDIDebug.cpp @@ -7,7 +7,7 @@ * */ -#if __cplusplus < 201703L +#if !(__cplusplus < 201703L) && !(_MSVC_LANG < 201703L) #error "This code run on C++17 or upper." #endif