Kajetan Johannes Hammerle hai 1 semana
achega
c883c3ae69
Modificáronse 4 ficheiros con 74 adicións e 0 borrados
  1. 3 0
      .clangd
  2. 10 0
      .gitignore
  3. 55 0
      CMakeLists.txt
  4. 6 0
      src/Main.c

+ 3 - 0
.clangd

@@ -0,0 +1,3 @@
+CompileFlags:
+  Add: [-ferror-limit=0]
+  CompilationDatabase: ./build_debug/

+ 10 - 0
.gitignore

@@ -0,0 +1,10 @@
+build_debug
+build_profile
+build_release
+install
+profile
+tasks_settings
+.cache
+*.swp
+*.swo
+*.spv

+ 55 - 0
CMakeLists.txt

@@ -0,0 +1,55 @@
+cmake_minimum_required(VERSION 4.1)
+project(template C)
+
+set(CMAKE_C_STANDARD 23)
+
+set(SRC
+    "src/Main.c"
+)
+
+set(COMPILER_ARGUMENTS
+    -Wall                    -Wvla                   -Werror
+    -Wextra                  -Wundef                 -Walloca
+    -Wshadow                 -Wformat=2              -Wcast-qual
+    -Wdate-time              -Winit-self             -Wmultichar
+    -Wnarrowing              -Wcast-align            -Wconversion
+    -Wfloat-equal            -Winvalid-pch           -Warray-bounds
+    -Wenum-compare           -Winvalid-utf8          -Wwrite-strings
+    -Wmissing-braces         -Wnested-externs        -Wshift-overflow
+    -Warray-parameter        -Wenum-conversion       -Wformat-overflow
+    -Wredundant-decls        -Wsign-conversion       -Wstack-protector
+    -Wdouble-promotion       -Wjump-misses-init      -Wnull-dereference
+    -Wunreachable-code       -Wbad-function-cast     -Wformat-signedness
+    -Wformat-truncation      -Wstrict-overflow=2     -Wstrict-prototypes
+    -Winfinite-recursion     -Wmissing-prototypes    -Woverlength-strings
+    -Wimplicit-fallthrough   -Wmissing-declarations  -Wmissing-include-dirs
+    -Wold-style-definition   -Wdisabled-optimization -Wunused-const-variable
+    -Wlarger-than=1073741824    -Wdeprecated-non-prototype
+    -Wframe-larger-than=8388608 -Wmissing-variable-declarations
+    -Wzero-as-null-pointer-constant
+    -fdiagnostics-color=always  -fstrict-flex-arrays=3
+    -pedantic                   -pedantic-errors
+)
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+    set(COMPILER_ARGUMENTS ${COMPILER_ARGUMENTS}
+        -Walloc-zero          -Wlogical-op           -Wtrampolines
+        -Wbidi-chars=any      -Wduplicated-cond      -Wnormalized=nfkc
+        -Warith-conversion    -Wuse-after-free=3     -Wattribute-alias=2
+        -Wstrict-flex-arrays  -Wduplicated-branches  -Wstack-usage=8388608
+        -Wstringop-overflow=4 -Wanalyzer-too-complex -Wtrivial-auto-var-init
+        -Wanalyzer-symbol-too-complex -Wflex-array-member-not-at-end
+    )
+elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+    set(COMPILER_ARGUMENTS ${COMPILER_ARGUMENTS}
+        -Wmissing-variable-declarations -Wconditional-uninitialized
+        -Wold-style-definition          -Wmissing-prototypes
+        -Wstrict-prototypes             -Wbad-function-cast
+        -Wmissing-noreturn              -Wextra-semi-stmt
+        -Wnested-externs                -Wnarrowing
+    )
+endif()
+
+add_executable(${PROJECT_NAME} ${SRC})
+target_compile_options(${PROJECT_NAME} PUBLIC
+    ${COMPILER_ARGUMENTS}
+)

+ 6 - 0
src/Main.c

@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main() {
+    puts("hi");
+    return 0;
+}