From 1deccb53186829840e25c6496157d94331caae90 Mon Sep 17 00:00:00 2001 From: kj16609 Date: Mon, 20 Jan 2025 10:45:47 -0500 Subject: [PATCH] Adds in static analysis to build modules config --- modules/compiler/gcc.cmake | 24 ++++++++++++++++++------ modules/helpers.cmake | 12 +++++++++++- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/modules/compiler/gcc.cmake b/modules/compiler/gcc.cmake index c678811..f8fa2bd 100644 --- a/modules/compiler/gcc.cmake +++ b/modules/compiler/gcc.cmake @@ -8,6 +8,8 @@ # Generic warnings. #set(FGL_WARNINGS "-Wall;-Wundef;-Wextra;-Wpedantic") + + AppendWarningFlag("-Wall") AppendWarningFlag("-Wundef") AppendWarningFlag("-Wextra") @@ -107,12 +109,26 @@ AppendWarningFlag("-fdiagnostics-path-format=inline-events") list(APPEND FGL_CONFIG "-fconcepts-diagnostics-depth=8") - list(APPEND FGL_CONFIG "-flto=auto") + + string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_BUILD_TYPE) + + if (DEFINED STATIC_ANALYSIS AND STATIC_ANALYSIS AND UPPER_BUILD_TYPE STREQUAL "DEBUG") + list(APPEND FGL_CONFIG "-fanalyzer") + if (NOT DEFINED USE_WERROR OR NOT USE_WERROR) + list(APPEND FGL_CONFIG "-Wanalyzer-too-complex") + endif () + else () + list(APPEND FGL_CONFIG "-flto=auto") + endif () + list(APPEND FGL_CONFIG "-ftree-vectorize") list(APPEND FGL_CONFIG "-fmax-errors=6") - if (DEFINED USE_WERROR) + #AppendWarningFlag("-fanalyzer") + #AppendWarningFlag("-Wanalyzer-too-complex") + + if (DEFINED USE_WERROR AND USE_WERROR) list(APPEND FGL_CONFIG "-Werror") endif () @@ -131,7 +147,6 @@ list(APPEND FGL_SHARED_DEBUG "-gdwarf-4") list(APPEND FGL_SHARED_DEBUG "-fvar-tracking-assignments") - string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_BUILD_TYPE) # Optimization flags set(FGL_FINAL_FLAGS_RELEASE "-O2;-s;${FGL_GENERAL_OPTIMIZATION_FLAGS};${FGL_SHARED_OPTIMIZATION_FLAGS}") # System agonistc flags @@ -145,9 +160,6 @@ list(APPEND FGL_CHILD_FLAGS ${FGL_FINAL_FLAGS_${UPPER_BUILD_TYPE}}) - message(" -- FGL_FLAGS: ${FGL_FLAGS}") - message("-- FGL_CHILD_FLAGS: ${FGL_CHILD_FLAGS}") - # Final sets #set(FGL_FLAGS "${FGL_CONFIG};${FGL_FINAL_FLAGS_${UPPER_BUILD_TYPE}};${FGL_WARNINGS}") # Flags for our shit #set(FGL_FLAGS "${FGL_OPTIMIZATION_FLAGS_${UPPER_BUILD_TYPE}}" PARENT_SCOPE) diff --git a/modules/helpers.cmake b/modules/helpers.cmake index 57b963c..0fed811 100644 --- a/modules/helpers.cmake +++ b/modules/helpers.cmake @@ -31,4 +31,14 @@ function(AddFGLLibrary NAME MODE SRC_SOURCES_LOCATION INCLUDE_SOURCES_LOCATION) target_include_directories(${NAME} PUBLIC ${INCLUDE_SOURCES_LOCATION}) target_include_directories(${NAME} PRIVATE ${SRC_SOURCES_LOCATION}) SetFGLFlags(${NAME}) -endfunction() \ No newline at end of file +endfunction() + +function(AddFGLChildLibrary NAME MODE SRC_SOURCES_LOCATION INCLUDE_SOURCES_LOCATION) + file(GLOB_RECURSE CPP_SOURCES ${SRC_SOURCES_LOCATION}/**.cpp) + file(GLOB_RECURSE HPP_SOURCES ${SRC_SOURCES_LOCATION}/**.hpp) + file(GLOB_RECURSE INCLUDE_HPP_SOURCES ${INCLUDE_SOURCES_LOCATION}/**.hpp) + add_library(${NAME} ${MODE} ${CPP_SOURCES} ${HPP_SOURCES} ${INCLUDE_SOURCES_LOCATION}) + target_include_directories(${NAME} PUBLIC ${INCLUDE_SOURCES_LOCATION}) + target_include_directories(${NAME} PRIVATE ${SRC_SOURCES_LOCATION}) + # SetFGLFlags(${NAME}) +endfunction()