no warnings from third parties
This commit is contained in:
parent
1bb33d3f34
commit
93f61018cd
@ -45,11 +45,12 @@ else()
|
||||
set(SYSTEM_SOURCE_FILES)
|
||||
endif()
|
||||
|
||||
set(TWN_SOURCE_FILES
|
||||
set(TWN_THIRD_PARTY_SOURCE_FILES
|
||||
third-party/physfs/extras/physfsrwops.c
|
||||
third-party/stb/stb_vorbis.c
|
||||
third-party/glad/src/glad.c
|
||||
third-party/glad/src/glad.c)
|
||||
|
||||
set(TWN_SOURCE_FILES
|
||||
townengine/twn_loop.c
|
||||
townengine/twn_main.c
|
||||
townengine/config.h
|
||||
@ -68,11 +69,13 @@ set(TWN_SOURCE_FILES
|
||||
|
||||
list(TRANSFORM TWN_SOURCE_FILES PREPEND ${TWN_ROOT_DIR}/)
|
||||
|
||||
add_library(twn_third_parties STATIC ${TWN_THIRD_PARTY_SOURCE_FILES})
|
||||
|
||||
# base engine code, reused for games and tools
|
||||
if(TWN_FEATURE_DYNLIB_GAME)
|
||||
add_library(${TWN_TARGET} SHARED ${TWN_SOURCE_FILES})
|
||||
add_library(${TWN_TARGET} SHARED ${TWN_SOURCE_FILES} ${twn_third_parties})
|
||||
else()
|
||||
add_library(${TWN_TARGET} STATIC ${TWN_SOURCE_FILES})
|
||||
add_library(${TWN_TARGET} STATIC ${TWN_SOURCE_FILES} ${twn_third_parties})
|
||||
endif()
|
||||
|
||||
source_group(TREE ${TWN_ROOT_DIR} FILES ${TWN_SOURCE_FILES})
|
||||
@ -96,25 +99,7 @@ set(PACKAGE_EXTENSION "btw" CACHE STRING
|
||||
"File extension used to look for data archives")
|
||||
|
||||
|
||||
function(give_options target)
|
||||
set(WARNING_FLAGS_CLANG
|
||||
-Weverything
|
||||
-Wno-padded
|
||||
-Wno-declaration-after-statement
|
||||
-Wno-unsafe-buffer-usage
|
||||
-Wno-unused-command-line-argument)
|
||||
|
||||
set(WARNING_FLAGS
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-Wdouble-promotion
|
||||
-Wconversion -Wno-sign-conversion
|
||||
-Werror=vla
|
||||
$<$<STREQUAL:${CMAKE_C_COMPILER_ID},Gnu>:-Wcast-align=strict>
|
||||
$<$<STREQUAL:${CMAKE_C_COMPILER_ID},Clang>:${WARNING_FLAGS_CLANG}>)
|
||||
|
||||
function(give_options_without_warnings target)
|
||||
set(BUILD_FLAGS
|
||||
# these SHOULDN'T break anything...
|
||||
-fno-math-errno
|
||||
@ -144,7 +129,6 @@ function(give_options target)
|
||||
-fsanitize=address)
|
||||
|
||||
target_compile_options(${target} PRIVATE
|
||||
${WARNING_FLAGS}
|
||||
${BUILD_FLAGS}
|
||||
$<$<CONFIG:Release>:${BUILD_FLAGS_RELEASE}>
|
||||
$<$<CONFIG:Debug>:${BUILD_FLAGS_DEBUG}>)
|
||||
@ -162,6 +146,32 @@ function(give_options target)
|
||||
endfunction()
|
||||
|
||||
|
||||
function(give_options target)
|
||||
give_options_without_warnings(${target})
|
||||
|
||||
set(WARNING_FLAGS_CLANG
|
||||
-Weverything
|
||||
-Wno-padded
|
||||
-Wno-declaration-after-statement
|
||||
-Wno-unsafe-buffer-usage
|
||||
-Wno-unused-command-line-argument)
|
||||
|
||||
set(WARNING_FLAGS
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
-Wshadow
|
||||
-Wdouble-promotion
|
||||
-Wconversion -Wno-sign-conversion
|
||||
-Werror=vla
|
||||
$<$<STREQUAL:${CMAKE_C_COMPILER_ID},Gnu>:-Wcast-align=strict>)
|
||||
|
||||
target_compile_options(${target} PRIVATE
|
||||
${WARNING_FLAGS}
|
||||
$<$<STREQUAL:${CMAKE_C_COMPILER_ID},Clang>:${WARNING_FLAGS_CLANG}>)
|
||||
endfunction()
|
||||
|
||||
|
||||
function(include_deps target)
|
||||
# header-only libraries should be marked as "system includes"
|
||||
# to suppress compiler warnings in their code (it's not my problem after all)
|
||||
@ -273,9 +283,14 @@ function(use_townengine target sources output_directory data_dir)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
give_options_without_warnings(twn_third_parties)
|
||||
include_deps(twn_third_parties)
|
||||
link_deps(twn_third_parties)
|
||||
|
||||
give_options(${TWN_TARGET})
|
||||
include_deps(${TWN_TARGET})
|
||||
link_deps(${TWN_TARGET})
|
||||
target_link_libraries(${TWN_TARGET} PUBLIC twn_third_parties)
|
||||
|
||||
# build the testgame if this cmake list is built directly
|
||||
if(${CMAKE_PROJECT_NAME} MATCHES townengine)
|
||||
|
Loading…
Reference in New Issue
Block a user