Просмотр исходного кода

Add C17 requirements for compiler

Signed-off-by: Martin Melik Merkumians <martin.melik@gmail.com>
Martin Melik Merkumians 1 месяц назад
Родитель
Сommit
149ad46986
1 измененных файлов с 25 добавлено и 1 удалено
  1. 25 1
      source/CMakeLists.txt

+ 25 - 1
source/CMakeLists.txt

@@ -8,6 +8,30 @@ cmake_minimum_required( VERSION 3.18 )
 #######################################
 project( OpENer LANGUAGES C VERSION 2.3 )
 
+#######################################
+# C Settings                          #
+#                                     #
+# Here you can set various C-related  #
+# options for the project.            #
+#######################################
+# Set C17 as minimum standard
+set(CMAKE_C_STANDARD 17)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+set(CMAKE_C_EXTENSIONS OFF)
+
+# Add modern compiler warnings
+if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
+    add_compile_options(
+        -Wall
+        -Wextra
+        -pedantic
+        -Wconversion
+        -Wshadow
+    )
+elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
+    add_compile_options(/W4)
+endif()
+
 #######################################
 # Project version                     #
 #######################################
@@ -31,7 +55,7 @@ if(NOT DEFINED OpENer_Device_Minor_Version)
   set(OpENer_Device_Minor_Version ${PROJECT_VERSION_MINOR} CACHE STRING "Minor Version")
 endif()
 
-configure_file(  
+configure_file(
 	"${PROJECT_SOURCE_DIR}/src/ports/devicedata.h.in"
 	"${PROJECT_BINARY_DIR}/src/ports/devicedata.h"
 	)