From 4a371eb3b953871ca1f9eedb989bfb38471b5bfe Mon Sep 17 00:00:00 2001 From: jacob Date: Sat, 6 Apr 2024 20:21:32 -0500 Subject: [PATCH] explicitly link msvc runtime libs & shared-libasan. stack-frame warning. --- CMakeLists.txt | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0eaa463b..077e46d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,21 +144,25 @@ target_precompile_headers(powerplay_exe PRIVATE src/common.h) set(COMPILER_WARNINGS " \ -Weverything -Werror \ +-Wframe-larger-than=65536 \ +\ -Wno-unused-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation \ --Wno-old-style-cast \ --Wno-conversion -Wno-sign-conversion -Wno-declaration-after-statement -Wno-extra-semi \ --Wno-extra-semi-stmt -Wno-bad-function-cast -Wno-class-varargs \ --Wno-unreachable-code-break -Wno-cast-align -Wno-float-equal \ --Wno-zero-as-null-pointer-constant -Wno-cast-qual -Wno-missing-noreturn \ --Wno-missing-field-initializers -Wno-missing-braces -Wno-initializer-overrides \ +-Wno-old-style-cast -Wno-conversion -Wno-sign-conversion \ +-Wno-declaration-after-statement -Wno-extra-semi -Wno-extra-semi-stmt \ +-Wno-bad-function-cast -Wno-class-varargs -Wno-unreachable-code-break \ +-Wno-cast-align -Wno-float-equal -Wno-zero-as-null-pointer-constant \ +-Wno-cast-qual -Wno-missing-noreturn -Wno-missing-field-initializers \ +-Wno-missing-braces -Wno-initializer-overrides \ -Wno-c99-extensions -Wno-c++98-compat-pedantic -Wno-c++98-compat \ -Wno-switch-enum -Wno-switch-default \ -Wno-reserved-identifier -Wno-reserved-macro-identifier \ --Wno-unsafe-buffer-usage \ +-Wno-unsafe-buffer-usage -Wno-writable-strings \ ") -# -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-parameter +# -Wno-unused-vfariable -Wno-unused-but-set-variable -Wno-unused-parameter set(COMPILER_FLAGS " +-fuse-ld=lld-link \ +-nostdlib \ -fno-strict-aliasing \ -fno-finite-loops \ -fwrapv \ @@ -166,7 +170,6 @@ set(COMPILER_FLAGS " ") set(LINKER_FLAGS " \ --fuse-ld=lld-link \ ${rc_res_sources} \ -fno-strict-aliasing \ -fno-finite-loops \ @@ -187,15 +190,22 @@ endif() # CRTLIB (C runtime library) if (CRTLIB) set(COMPILER_FLAGS "${COMPILER_FLAGS} -DCRTLIB=1") + if (RTC) + set(COMPILER_FLAGS "${COMPILER_FLAGS} -D_DEBUG -D_MT -D_DLL") + set(LINKER_FLAGS "${LINKER_FLAGS} -lmsvcrtd -lucrtd -lmsvcprtd -lvcruntimed") + else() + set(COMPILER_FLAGS "${COMPILER_FLAGS} -D_MT -D_DLL") + set(LINKER_FLAGS "${LINKER_FLAGS} -lmsvcrt -lucrt -lmsvcprt -lvcruntime") + endif() else() - set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin -nostdlib") + set(COMPILER_FLAGS "${COMPILER_FLAGS} -mno-stack-arg-probe -fno-builtin") endif() # Optimization if (UNOPTIMIZED) - set(COMPILER_FLAGS "${COMPILER_FLAGS} -O0 -DUNOPTIMIZED=1") + set(COMPILER_FLAGS "${COMPILER_FLAGS} -O0 -DUNOPTIMIZED=1") else() - set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -flto") + set(COMPILER_FLAGS "${COMPILER_FLAGS} -O3 -flto") endif() # Debug info @@ -208,7 +218,7 @@ if (ASAN) if (NOT CRTLIB) message(FATAL_ERROR "CRTLIB (C runtime library) Must be enabled when compiling with ASAN") endif() - set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -DASAN=1") + set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=address -shared-libasan -DASAN=1") endif() # Developer mode