changeset 597:087468cbf7ab

cmake: install more modules
author David Demelier <markand@malikania.fr>
date Thu, 30 Mar 2023 12:39:24 +0200
parents 3228241e9863
children 1742b5eaf0d4
files CMakeLists.txt cmake/MlkBcc.cmake cmake/MlkMap.cmake cmake/MlkOptions.cmake cmake/MlkTileset.cmake extern/libsqlite/CMakeLists.txt extern/libsqlite/libmlk-sqlite-config.cmake extern/libutlist/CMakeLists.txt extern/libutlist/libmlk-utlist-config.cmake libmlk-core/libmlk-core-config.cmake libmlk-rpg/CMakeLists.txt libmlk-rpg/libmlk-rpg-config.cmake libmlk-rpg/mlk/rpg/save.c libmlk-rpg/mlk/rpg/save.h libmlk-ui/CMakeLists.txt libmlk-ui/libmlk-ui-config.cmake mlk-bcc/CMakeLists.txt mlk-map/CMakeLists.txt mlk-tileset/CMakeLists.txt tests/test-save-quest.c
diffstat 20 files changed, 190 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -27,10 +27,10 @@
 
 set_property(GLOBAL PROPERTY USE_FOLDERS On)
 
-set(CMAKE_C_STANDARD 11)
+set(CMAKE_C_STANDARD 23)
 set(CMAKE_C_STANDARD_REQUIRED On)
 set(CMAKE_C_EXTENSIONS On)
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+set(CMAKE_MODULE_PATH "${molko_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
 
 if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
 	set(CMAKE_C_FLAGS "-Wall -Wextra -Wno-deprecated-declarations -Wno-unknown-pragmas ${CMAKE_C_FLAGS}")
@@ -41,7 +41,6 @@
 		set(CMAKE_C_FLAGS "-Wno-fixed-enum-extension ${CMAKE_C_FLAGS}")
 	endif ()
 elseif (CMAKE_C_COMPILER_ID MATCHES "MSVC")
-	set(CMAKE_C_FLAGS "/W3 /wd4090 /wd4244 /wd4267 /wd4996 /wd5105 /wd6031 /wd6001 /wd26451 ${CMAKE_C_FLAGS}")
 	set(CMAKE_C_FLAGS "/D_CRT_SECURE_NO_WARNINGS ${CMAKE_C_FLAGS}")
 endif ()
 
@@ -55,19 +54,7 @@
 	set(MLK_WITH_${name} ${value} CACHE ${type} ${help})
 endfunction()
 
-mlk_option(DOXYGEN On
-    BOOL "Enable doxygen documentation")
-mlk_option(EXAMPLES On
-    BOOL "Enable examples")
-mlk_option(NLS On
-    BOOL "Enable NLS support")
-mlk_option(TESTS On
-    BOOL "Enable unit tests")
-mlk_option(TESTS_GRAPHICAL On
-    BOOL "Enable unit tests that requires graphical context")
-mlk_option(CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake"
-    STRING "Destination for CMake files")
-
+include(cmake/MlkOptions.cmake)
 include(cmake/MlkBcc.cmake)
 include(cmake/MlkExecutable.cmake)
 include(cmake/MlkLibrary.cmake)
@@ -75,7 +62,7 @@
 include(cmake/MlkNls.cmake)
 include(cmake/MlkTileset.cmake)
 
-find_package(SDL2 REQUIRED COMPONENTS image ttf)
+find_package(SDL2 MODULE REQUIRED COMPONENTS image ttf)
 find_package(OpenAL REQUIRED)
 find_package(SndFile REQUIRED)
 find_package(Jansson REQUIRED)
@@ -121,7 +108,10 @@
 #
 install(
 	FILES
-		${CMAKE_SOURCE_DIR}/cmake/FindSDL2.cmake
-		${CMAKE_SOURCE_DIR}/cmake/FindSndFile.cmake
+		${molko_SOURCE_DIR}/cmake/FindSDL2.cmake
+		${molko_SOURCE_DIR}/cmake/FindSndFile.cmake
+		${molko_SOURCE_DIR}/cmake/MlkBcc.cmake
+		${molko_SOURCE_DIR}/cmake/MlkMap.cmake
+		${molko_SOURCE_DIR}/cmake/MlkTileset.cmake
 	DESTINATION "${MLK_WITH_CMAKEDIR}/mlk"
 )
--- a/cmake/MlkBcc.cmake	Mon Mar 27 17:01:01 2023 +0200
+++ b/cmake/MlkBcc.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -28,7 +28,6 @@
 # This macro will generate all files under the OUTPUT_DIRECTORY variable which
 # defaults to ${CMAKE_CURRENT_BINARY_DIR}/assets if unset.
 #
-#
 # It will also keep the last parent directory name under the output directory
 # because most users will arrange more files under a specific file hierarchy,
 # this also avoid a file name conflict.
@@ -91,9 +90,9 @@
 			COMMAND
 				${CMAKE_COMMAND} -E make_directory ${_bcc_base_directory}/${_bcc_dirname}
 			COMMAND
-				$<TARGET_FILE:mlk-bcc> ${_bcc_args} ${a} ${_bcc_var} > ${_bcc_output_file}
+				$<TARGET_FILE:mlk::mlk-bcc> ${_bcc_args} ${a} ${_bcc_var} > ${_bcc_output_file}
 			COMMENT "Generating asset ${_bcc_dirname}/${_bcc_filename}"
-			DEPENDS $<TARGET_FILE:mlk-bcc> ${a}
+			DEPENDS $<TARGET_FILE:mlk::mlk-bcc> ${a}
 		)
 
 		list(APPEND ${_bcc_OUTPUTS_VAR} ${_bcc_output_file})
--- a/cmake/MlkMap.cmake	Mon Mar 27 17:01:01 2023 +0200
+++ b/cmake/MlkMap.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -17,13 +17,13 @@
 #
 
 function(mlk_map input output)
-	set(cmd COMMAND $<TARGET_FILE:mlk-map> < ${input} > ${output})
+	set(cmd COMMAND $<TARGET_FILE:mlk::mlk-map> < ${input} > ${output})
 	get_filename_component(filename ${output} NAME)
 
 	add_custom_command(
 		OUTPUT ${output}
 		COMMAND ${cmd}
-		DEPENDS $<TARGET_FILE:mlk-map> ${input}
+		DEPENDS $<TARGET_FILE:mlk::mlk-map> ${input}
 		COMMENT "Generating map ${filename}"
 	)
 endfunction()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmake/MlkOptions.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -0,0 +1,13 @@
+
+mlk_option(MLK_WITH_DOXYGEN On
+    BOOL "Enable doxygen documentation")
+mlk_option(MLK_WITH_EXAMPLES On
+    BOOL "Enable examples")
+mlk_option(MLK_WITH_NLS On
+    BOOL "Enable NLS support")
+mlk_option(MLK_WITH_TESTS On
+    BOOL "Enable unit tests")
+mlk_option(MLK_WITH_TESTS_GRAPHICAL On
+    BOOL "Enable unit tests that requires graphical context")
+mlk_option(MLK_WITH_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake"
+    STRING "Destination for CMake files")
--- a/cmake/MlkTileset.cmake	Mon Mar 27 17:01:01 2023 +0200
+++ b/cmake/MlkTileset.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -17,13 +17,13 @@
 #
 
 function(mlk_tileset input output)
-	set(cmd COMMAND $<TARGET_FILE:mlk-tileset> < ${input} > ${output})
+	set(cmd COMMAND $<TARGET_FILE:mlk::mlk-tileset> < ${input} > ${output})
 	get_filename_component(filename ${output} NAME)
 
 	add_custom_command(
 		OUTPUT ${output}
 		COMMAND ${cmd}
-		DEPENDS $<TARGET_FILE:mlk-tileset> ${input}
+		DEPENDS $<TARGET_FILE:mlk::mlk-tileset> ${input}
 		COMMENT "Generating tileset ${filename}"
 	)
 endfunction()
--- a/extern/libsqlite/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/extern/libsqlite/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -33,6 +33,7 @@
 	SOURCES ${SOURCES}
 	FOLDER extern
 	OPTIONS PRIVATE ${OPTIONS}
+	INSTALL
 	FLAGS
 		PRIVATE
 			SQLITE_THREADSAFE=0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extern/libsqlite/libmlk-sqlite-config.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -0,0 +1,19 @@
+#
+# libmlk-sqlite-config.cmake -- export file for libmlk-sqlite
+#
+# Copyright (c) 2020-2023 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.
+#
+
+include("${CMAKE_CURRENT_LIST_DIR}/libmlk-sqlite-targets.cmake")
--- a/extern/libutlist/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/extern/libutlist/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -16,12 +16,21 @@
 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #
 
-cmake_minimum_required(VERSION 3.0)
 project(libmlk-utlist)
-add_library(libmlk-utlist INTERFACE)
-target_include_directories(
-	libmlk-utlist
-	INTERFACE
-		$<BUILD_INTERFACE:${libmlk-utlist_SOURCE_DIR}>
+
+set(
+	SOURCES
+	${libmlk-utlist_SOURCE_DIR}/utlist.h
 )
-target_sources(libmlk-utlist INTERFACE ${libmlk-utlist_SOURCE_DIR}/utlist.h)
+
+mlk_library(
+	NAME libmlk-utlist
+	TYPE INTERFACE
+	SOURCES ${SOURCES}
+	FOLDER extern
+	INSTALL
+	INCLUDES
+		INTERFACE $<BUILD_INTERFACE:${libmlk-utlist_SOURCE_DIR}>
+)
+
+source_group(TREE ${libmlk-utlist_SOURCE_DIR} FILES ${SOURCES})
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extern/libutlist/libmlk-utlist-config.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -0,0 +1,19 @@
+#
+# libmlk-utlist-config.cmake -- export file for libmlk-utlist
+#
+# Copyright (c) 2020-2023 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.
+#
+
+include("${CMAKE_CURRENT_LIST_DIR}/libmlk-utlist-targets.cmake")
--- a/libmlk-core/libmlk-core-config.cmake	Mon Mar 27 17:01:01 2023 +0200
+++ b/libmlk-core/libmlk-core-config.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -19,5 +19,7 @@
 include(CMakeFindDependencyMacro)
 
 find_dependency(libmlk-util)
+find_dependency(Intl)
 
 include("${CMAKE_CURRENT_LIST_DIR}/libmlk-core-targets.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/../mlk/MlkBcc.cmake")
--- a/libmlk-rpg/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/libmlk-rpg/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -27,13 +27,10 @@
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/map.c
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/message.c
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/property.c
-	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/property.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/quest.c
-	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/quest.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/rpg.c
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/rpg_p.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/save.c
-	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/save.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset-loader-file.c
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset-loader.c
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset.c
@@ -46,7 +43,10 @@
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/map-loader.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/map.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/message.h
+	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/property.h
+	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/quest.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/rpg.h
+	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/save.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset-loader-file.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset-loader.h
 	${libmlk-rpg_SOURCE_DIR}/mlk/rpg/tileset.h
@@ -79,6 +79,7 @@
 	HEADERS_DIRECTORY mlk/rpg
 	LANGS ${NLS}
 	ASSETS ${ASSETS}
+	INSTALL
 	LIBRARIES
 		libmlk-ui
 		libmlk-sqlite
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libmlk-rpg/libmlk-rpg-config.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -0,0 +1,25 @@
+#
+# libmlk-rpg-config.cmake -- export file for libmlk-rpg
+#
+# Copyright (c) 2020-2023 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.
+#
+
+include(CMakeFindDependencyMacro)
+
+find_dependency(libmlk-sqlite)
+find_dependency(libmlk-ui)
+find_dependency(libmlk-utlist)
+
+include("${CMAKE_CURRENT_LIST_DIR}/libmlk-rpg-targets.cmake")
--- a/libmlk-rpg/mlk/rpg/save.c	Mon Mar 27 17:01:01 2023 +0200
+++ b/libmlk-rpg/mlk/rpg/save.c	Thu Mar 30 12:39:24 2023 +0200
@@ -1,5 +1,5 @@
 /*
- * save.c -- save functions
+ * save.c -- game save files support
  *
  * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
  *
@@ -280,6 +280,8 @@
 		va_end(ap);
 		break;
 	case SQLITE_DONE:
+		/* For convenience, cleanup resource when used in a loop. */
+		mlk_save_stmt_finish(stmt);
 		ret = 0;
 		break;
 	default:
--- a/libmlk-rpg/mlk/rpg/save.h	Mon Mar 27 17:01:01 2023 +0200
+++ b/libmlk-rpg/mlk/rpg/save.h	Thu Mar 30 12:39:24 2023 +0200
@@ -1,5 +1,5 @@
 /*
- * save.h -- save functions
+ * save.h -- game save files support
  *
  * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
  *
@@ -19,24 +19,64 @@
 #ifndef MLK_RPG_SAVE_H
 #define MLK_RPG_SAVE_H
 
+/**
+ * \file save.h
+ * \brief Game save files support
+ */
+
 #include <time.h>
 
 #include <mlk/core/core.h>
 
+/**
+ * \struct mlk_save
+ * \brief Save file structure
+ */
 struct mlk_save {
+	/**
+	 * (read-only)
+	 *
+	 * UTC timestamp when was the file created.
+	 */
 	time_t created;
+
+	/**
+	 * (read-only)
+	 *
+	 * UTC timestamp when was the last used.
+	 */
 	time_t updated;
+
+	/** \cond MLK_PRIVATE_DECLS */
 	void *handle;
+	/** \endcond MLK_PRIVATE_DECLS */
 };
 
+/**
+ * \enum mlk_save_mode
+ * \brief Save file access mode
+ */
 enum mlk_save_mode {
+	/**
+	 * Open for read-only, fails if the file does not exist.
+	 */
 	MLK_SAVE_MODE_READ,
+
+	/**
+	 * Open for read-write, create the file if not present.
+	 */
 	MLK_SAVE_MODE_WRITE
 };
 
+/**
+ * \struct mlk_save_stmt
+ * \brief Prepared statement structure
+ */
 struct mlk_save_stmt {
-	struct save *parent;
+	/** \cond MLK_PRIVATE_DECLS */
+	struct mlk_save *parent;
 	void *handle;
+	/** \endcond MLK_PRIVATE_DECLS */
 };
 
 #if defined(__cplusplus)
--- a/libmlk-ui/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/libmlk-ui/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -62,6 +62,7 @@
 	HEADERS_DIRECTORY mlk/ui
 	LANGS ${NLS}
 	ASSETS ${ASSETS}
+	INSTALL
 	LIBRARIES libmlk-core
 	INCLUDES
 		PRIVATE $<BUILD_INTERFACE:${libmlk-ui_BINARY_DIR}>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libmlk-ui/libmlk-ui-config.cmake	Thu Mar 30 12:39:24 2023 +0200
@@ -0,0 +1,23 @@
+#
+# libmlk-ui-config.cmake -- export file for libmlk-ui
+#
+# Copyright (c) 2020-2023 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.
+#
+
+include(CMakeFindDependencyMacro)
+
+find_dependency(libmlk-core)
+
+include("${CMAKE_CURRENT_LIST_DIR}/libmlk-ui-targets.cmake")
--- a/mlk-bcc/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/mlk-bcc/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -25,3 +25,5 @@
 	INSTALL
 	FOLDER tools
 )
+
+add_executable(mlk::mlk-bcc ALIAS mlk-bcc)
--- a/mlk-map/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/mlk-map/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -25,3 +25,5 @@
 	FOLDER tools
 	INSTALL
 )
+
+add_executable(mlk::mlk-map ALIAS mlk-map)
--- a/mlk-tileset/CMakeLists.txt	Mon Mar 27 17:01:01 2023 +0200
+++ b/mlk-tileset/CMakeLists.txt	Thu Mar 30 12:39:24 2023 +0200
@@ -25,3 +25,5 @@
 	FOLDER tools
 	INSTALL
 )
+
+add_executable(mlk::mlk-tileset ALIAS mlk-tileset)
--- a/tests/test-save-quest.c	Mon Mar 27 17:01:01 2023 +0200
+++ b/tests/test-save-quest.c	Thu Mar 30 12:39:24 2023 +0200
@@ -26,7 +26,7 @@
 #include <dt.h>
 
 static void
-test_basics_load(struct save *save)
+test_basics_load(struct mlk_save *save)
 {
 	struct quest_step steps[] = {
 		{