Mercurial > molko
changeset 221:d51d9c0c2186
misc: some cleanup
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 18 Nov 2020 15:19:25 +0100 |
parents | 617fda414bbb |
children | bf7169bb054d |
files | CMakeLists.txt cmake/MolkoDefineExecutable.cmake cmake/MolkoDefineLibrary.cmake cmake/MolkoDefineTest.cmake cmake/MolkoSetCompilerFlags.cmake extern/libgreatest/CMakeLists.txt extern/libsqlite/CMakeLists.txt librpg/rpg/battle-bar.c librpg/rpg/battle-state-opening.c librpg/rpg/battle.c libui/ui/checkbox.c |
diffstat | 11 files changed, 56 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Wed Nov 18 15:07:43 2020 +0100 +++ b/CMakeLists.txt Wed Nov 18 15:19:25 2020 +0100 @@ -24,16 +24,6 @@ set(CMAKE_C_EXTENSIONS Off) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -if (CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU") - set(CMAKE_C_FLAGS "-Wall -Wextra ${CMAKE_C_FLAGS}") -endif () - -if (CMAKE_C_COMPILER_ID MATCHES "Clang") - set(options "-fsanitize=address,undefined,integer") - set(CMAKE_C_FLAGS_DEBUG "-fno-omit-frame-pointer ${options} ${CMAKE_C_FLAGS_DEBUG}") - set(CMAKE_EXE_LINKER_FLAGS "${options} ${CMAKE_EXE_LINKER_FLAGS}") -endif () - option(MOLKO_WITH_DOXYGEN "Enable Doxygen build" On) option(MOLKO_WITH_DOC "Enable documentation (requires sphinx)" On) option(MOLKO_WITH_TESTS "Enable unit tests" On)
--- a/cmake/MolkoDefineExecutable.cmake Wed Nov 18 15:07:43 2020 +0100 +++ b/cmake/MolkoDefineExecutable.cmake Wed Nov 18 15:19:25 2020 +0100 @@ -17,6 +17,7 @@ # include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) function(molko_define_executable) set(options) @@ -51,4 +52,6 @@ if (EXE_FOLDER) set_target_properties(${EXE_TARGET} PROPERTIES FOLDER ${EXE_FOLDER}) endif () + + molko_set_compiler_flags(${EXE_TARGET}) endfunction()
--- a/cmake/MolkoDefineLibrary.cmake Wed Nov 18 15:07:43 2020 +0100 +++ b/cmake/MolkoDefineLibrary.cmake Wed Nov 18 15:19:25 2020 +0100 @@ -25,6 +25,7 @@ # molko_define_library( # TARGET target name # SOURCES src1, src2, srcn +# EXTERNAL (Optional) set to true for external libraries # FOLDER (Optional) optional subfolder to organize # TYPE (Optional) type of library # ASSETS (Optional) list of assets @@ -44,6 +45,9 @@ # The argument SOURCES should contains the C source files and HEADERS should # points to a directory to be installed verbatim in the include directory. # +# Optional argument EXTERNAL should be set for targets that are not maintained +# here (e.g. third party libraries embedded). +# # Optional argument PRIVATE_FLAGS, PUBLIC_FLAGS, PRIVATE_INCLUDES, # PUBLIC_INCLUDES, LIBRARIES may be passed to set compile flags, includes and # libraries respectively. @@ -58,9 +62,10 @@ include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildTilesets.cmake) include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildMaps.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) function(molko_define_library) - set(options) + set(options EXTERNAL) set(oneValueArgs FOLDER TARGET TYPE) set(multiValueArgs ASSETS LIBRARIES MAPS PRIVATE_FLAGS PRIVATE_INCLUDES PUBLIC_FLAGS PUBLIC_INCLUDES TILESETS SOURCES) @@ -127,6 +132,10 @@ C_STANDARD 11 C_STANDARD_REQUIRED On ) + + if (NOT ${LIB_EXTERNAL}) + molko_set_compiler_flags(${LIB_TARGET}) + endif () endif () if (LIB_FOLDER)
--- a/cmake/MolkoDefineTest.cmake Wed Nov 18 15:07:43 2020 +0100 +++ b/cmake/MolkoDefineTest.cmake Wed Nov 18 15:19:25 2020 +0100 @@ -17,6 +17,7 @@ # include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) function(molko_define_test) set(options) @@ -50,6 +51,9 @@ libgreatest ${TEST_LIBRARIES} ) + add_test(NAME ${TEST_TARGET} COMMAND test-${TEST_TARGET}) set_target_properties(test-${TEST_TARGET} PROPERTIES FOLDER tests) + + molko_set_compiler_flags(test-${TEST_TARGET}) endfunction()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmake/MolkoSetCompilerFlags.cmake Wed Nov 18 15:19:25 2020 +0100 @@ -0,0 +1,28 @@ +# +# CMakeLists.txt -- CMake build system for molko +# +# Copyright (c) 2020 David Demelier <markand@malikania.fr> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +function(molko_set_compiler_flags target) + if (CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU") + target_compile_options(${target} PRIVATE -Wall -Wextra) + endif () + + if (CMAKE_C_COMPILER_ID MATCHES "Clang") + target_compile_options(${target} PRIVATE -fsanitize=address,undefined,integer) + target_link_options(${target} PRIVATE -fsanitize=address,undefined,integer) + endif () +endfunction ()
--- a/extern/libgreatest/CMakeLists.txt Wed Nov 18 15:07:43 2020 +0100 +++ b/extern/libgreatest/CMakeLists.txt Wed Nov 18 15:19:25 2020 +0100 @@ -22,6 +22,7 @@ TARGET libgreatest TYPE INTERFACE SOURCES greatest.h + EXTERNAL PUBLIC_INCLUDES $<BUILD_INTERFACE:${libgreatest_SOURCE_DIR}> )
--- a/extern/libsqlite/CMakeLists.txt Wed Nov 18 15:07:43 2020 +0100 +++ b/extern/libsqlite/CMakeLists.txt Wed Nov 18 15:19:25 2020 +0100 @@ -21,6 +21,7 @@ molko_define_library( TARGET libsqlite SOURCES sqlite3.c sqlite3.h + EXTERNAL FOLDER extern PUBLIC_FLAGS SQLITE_THREADSAFE=0
--- a/librpg/rpg/battle-bar.c Wed Nov 18 15:07:43 2020 +0100 +++ b/librpg/rpg/battle-bar.c Wed Nov 18 15:19:25 2020 +0100 @@ -272,6 +272,9 @@ bool battle_bar_handle(struct battle_bar *bar, const struct battle *bt, const union event *ev) { + /* Not needed yet. */ + (void)bt; + assert(bar); assert(bt); assert(ev);
--- a/librpg/rpg/battle-state-opening.c Wed Nov 18 15:07:43 2020 +0100 +++ b/librpg/rpg/battle-state-opening.c Wed Nov 18 15:19:25 2020 +0100 @@ -61,6 +61,8 @@ static void draw(const struct battle_state *st, const struct battle *bt) { + (void)bt; + assert(bt); const struct opening *opening = st->data;
--- a/librpg/rpg/battle.c Wed Nov 18 15:07:43 2020 +0100 +++ b/librpg/rpg/battle.c Wed Nov 18 15:19:25 2020 +0100 @@ -293,6 +293,8 @@ void battle_attack(struct battle *bt, struct character *source, struct character *target) { + (void)source; + assert(bt); assert(character_ok(source)); assert(character_ok(target));