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));
--- a/libui/ui/checkbox.c	Wed Nov 18 15:07:43 2020 +0100
+++ b/libui/ui/checkbox.c	Wed Nov 18 15:19:25 2020 +0100
@@ -52,7 +52,8 @@
 void
 checkbox_draw_default(const struct theme *t, const struct checkbox *cb)
 {
-	assert(t);
+	(void)t;
+
 	assert(cb);
 
 	painter_set_color(0x151d28ff);