Mercurial > molko
changeset 301:f04b4ee04db3
make: switch to GNU make
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 23 Jun 2021 22:41:34 +0200 |
parents | 3638b39ef2bf |
children | f09c166fd4d4 |
files | CMakeLists.txt GNUmakefile cmake/CMakeLists.txt cmake/FindJansson.cmake cmake/FindSDL2.cmake cmake/FindZSTD.cmake cmake/MolkoBuildAssets.cmake cmake/MolkoBuildMaps.cmake cmake/MolkoBuildTranslations.cmake cmake/MolkoDefineExecutable.cmake cmake/MolkoDefineLibrary.cmake cmake/MolkoDefineTest.cmake cmake/MolkoSetBuildDirectories.cmake cmake/MolkoSetCompilerFlags.cmake config.h.in doc/CMakeLists.txt examples/CMakeLists.txt examples/example-action/CMakeLists.txt examples/example-animation/CMakeLists.txt examples/example-audio/CMakeLists.txt examples/example-battle/CMakeLists.txt examples/example-cursor/CMakeLists.txt examples/example-debug/CMakeLists.txt examples/example-drawable/CMakeLists.txt examples/example-font/CMakeLists.txt examples/example-gridmenu/CMakeLists.txt examples/example-label/CMakeLists.txt examples/example-message/CMakeLists.txt examples/example-sprite/CMakeLists.txt examples/example-trace/CMakeLists.txt examples/example-ui/CMakeLists.txt extern/LICENSE.libcompat.txt extern/VERSION.libcompat.txt extern/libcompat/CHANGES.md extern/libcompat/CMakeLists.txt extern/libcompat/CREDITS.md extern/libcompat/LICENSE.md extern/libcompat/README.md extern/libcompat/src/basename.c extern/libcompat/src/compat.c extern/libcompat/src/compat.h.in extern/libcompat/src/dirname.c extern/libcompat/src/getopt.c extern/libcompat/src/pledge.c extern/libcompat/src/reallocarray.c extern/libcompat/src/recallocarray.c extern/libcompat/src/strdup.c extern/libcompat/src/strlcat.c extern/libcompat/src/strlcpy.c extern/libcompat/src/strndup.c extern/libcompat/src/strnlen.c extern/libcompat/src/strsep.c extern/libcompat/win/dirent/dirent.h extern/libgreatest/CMakeLists.txt extern/libsqlite/CMakeLists.txt libmlk-adventure/CMakeLists.txt libmlk-adventure/adventure/action/teleport.c libmlk-adventure/adventure/adventure_p.h libmlk-adventure/adventure/dialog/save.c libmlk-adventure/adventure/state/map.c libmlk-core/CMakeLists.txt libmlk-core/core/core_p.h libmlk-core/core/sys.c libmlk-core/core/translate.c libmlk-rpg/CMakeLists.txt libmlk-rpg/rpg/character.c libmlk-rpg/rpg/rpg_p.h libmlk-rpg/rpg/save.c libmlk-ui/CMakeLists.txt libmlk-ui/ui/theme.c libmlk-ui/ui/ui_p.h mlk-adventure/CMakeLists.txt tests/CMakeLists.txt tools/bcc/CMakeLists.txt tools/map/CMakeLists.txt tools/tileset/CMakeLists.txt |
diffstat | 76 files changed, 357 insertions(+), 4277 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -# -# 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. -# - -cmake_minimum_required(VERSION 3.19) -project(molko) - -set(CMAKE_C_STANDARD 11) -set(CMAKE_C_STANDARD_REQUIRED On) -set(CMAKE_C_EXTENSIONS Off) -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") - -option(MOLKO_WITH_NLS "Enable native language support" On) -option(MOLKO_WITH_DOC "Enable documentation (requires doxygen, doxybook2 and mkdocs)" On) -option(MOLKO_WITH_TESTS "Enable unit tests" On) -option(MOLKO_WITH_EXAMPLES "Enable build of examples" On) - -set_property(GLOBAL PROPERTY USE_FOLDERS On) - -include(GNUInstallDirs) - -include(cmake/MolkoBuildAssets.cmake) -include(cmake/MolkoBuildMaps.cmake) -include(cmake/MolkoDefineExecutable.cmake) -include(cmake/MolkoDefineLibrary.cmake) -include(cmake/MolkoDefineTest.cmake) - -find_package(Jansson REQUIRED) -find_package(ZSTD REQUIRED) -find_package(SDL2 REQUIRED COMPONENTS image mixer ttf) -find_package(Intl) - -add_subdirectory(cmake) - -add_subdirectory(extern/libgreatest) -add_subdirectory(extern/libsqlite) -add_subdirectory(extern/libcompat) - -add_subdirectory(tools/bcc) -add_subdirectory(tools/map) -add_subdirectory(tools/tileset) - -add_subdirectory(libmlk-data) -add_subdirectory(libmlk-core) -add_subdirectory(libmlk-ui) -add_subdirectory(libmlk-rpg) -add_subdirectory(libmlk-adventure) -add_subdirectory(mlk-adventure) - -if (MOLKO_WITH_DOC) - add_subdirectory(doc) -endif () - -if (MOLKO_WITH_EXAMPLES) - add_subdirectory(examples) -endif () - -if (MOLKO_WITH_TESTS) - enable_testing() - add_subdirectory(tests) -endif ()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GNUmakefile Wed Jun 23 22:41:34 2021 +0200 @@ -0,0 +1,340 @@ +# +# GNUmakefile -- GNU make for molko +# +# Copyright (c) 2020-2021 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. +# + +CC= cc +CFLAGS= -O0 -g +AR= ar + +# Don't use absolute paths except for PREFIX. +PREFIX= /usr/local +BINDIR= bin +LIBDIR= lib +DATADIR= share +LOCALEDIR= share/locale + +# Compile time options. +NLS= 1 + +LIBMLK_SQLITE= extern/libsqlite/libmlk-sqlite.a +LIBMLK_SQLITE_SRCS= extern/libsqlite/sqlite3.c +LIBMLK_SQLITE_OBJS= ${LIBMLK_SQLITE_SRCS:.c=.o} +LIBMLK_SQLITE_DEPS= ${LIBMLK_SQLITE_SRCS:.c=.d} + +LIBMLK_CORE= libmlk-core/libmlk-core.a +LIBMLK_CORE_SRCS= libmlk-core/core/action.c \ + libmlk-core/core/alloc.c \ + libmlk-core/core/animation.c \ + libmlk-core/core/clock.c \ + libmlk-core/core/core.c \ + libmlk-core/core/drawable.c \ + libmlk-core/core/error.c \ + libmlk-core/core/event.c \ + libmlk-core/core/font.c \ + libmlk-core/core/game.c \ + libmlk-core/core/image.c \ + libmlk-core/core/maths.c \ + libmlk-core/core/music.c \ + libmlk-core/core/painter.c \ + libmlk-core/core/panic.c \ + libmlk-core/core/script.c \ + libmlk-core/core/sound.c \ + libmlk-core/core/sprite.c \ + libmlk-core/core/state.c \ + libmlk-core/core/sys.c \ + libmlk-core/core/texture.c \ + libmlk-core/core/trace.c \ + libmlk-core/core/translate.c \ + libmlk-core/core/util.c \ + libmlk-core/core/window.c \ + libmlk-core/core/zfile.c +LIBMLK_CORE_OBJS= ${LIBMLK_CORE_SRCS:.c=.o} +LIBMLK_CORE_DEPS= ${LIBMLK_CORE_SRCS:.c=.d} + +LIBMLK_UI= libmlk-ui/libmlk-ui.a +LIBMLK_UI_SRCS= libmlk-ui/ui/align.c \ + libmlk-ui/ui/button.c \ + libmlk-ui/ui/checkbox.c \ + libmlk-ui/ui/debug.c \ + libmlk-ui/ui/frame.c \ + libmlk-ui/ui/gridmenu.c \ + libmlk-ui/ui/label.c \ + libmlk-ui/ui/theme.c \ + libmlk-ui/ui/ui.c +LIBMLK_UI_OBJS= ${LIBMLK_UI_SRCS:.c=.o} +LIBMLK_UI_DEPS= ${LIBMLK_UI_SRCS:.c=.d} +LIBMLK_UI_ASTS= libmlk-ui/assets/fonts/opensans-light.h \ + libmlk-ui/assets/fonts/opensans-regular.h + +LIBMLK_RPG= libmlk-rpg/libmlk-rpg.a +LIBMLK_RPG_SRCS= libmlk-rpg/rpg/battle-bar.c \ + libmlk-rpg/rpg/battle-entity-state-attacking.c \ + libmlk-rpg/rpg/battle-entity-state-blinking.c \ + libmlk-rpg/rpg/battle-entity-state-moving.c \ + libmlk-rpg/rpg/battle-entity-state-normal.c \ + libmlk-rpg/rpg/battle-entity-state.c \ + libmlk-rpg/rpg/battle-entity.c \ + libmlk-rpg/rpg/battle-indicator.c \ + libmlk-rpg/rpg/battle-message.c \ + libmlk-rpg/rpg/battle-state-ai.c \ + libmlk-rpg/rpg/battle-state-attacking.c \ + libmlk-rpg/rpg/battle-state-check.c \ + libmlk-rpg/rpg/battle-state-closing.c \ + libmlk-rpg/rpg/battle-state-item.c \ + libmlk-rpg/rpg/battle-state-lost.c \ + libmlk-rpg/rpg/battle-state-menu.c \ + libmlk-rpg/rpg/battle-state-opening.c \ + libmlk-rpg/rpg/battle-state-selection.c \ + libmlk-rpg/rpg/battle-state-sub.c \ + libmlk-rpg/rpg/battle-state-victory.c \ + libmlk-rpg/rpg/battle-state.c \ + libmlk-rpg/rpg/battle.c \ + libmlk-rpg/rpg/character.c \ + libmlk-rpg/rpg/equipment.c \ + libmlk-rpg/rpg/inventory.c \ + libmlk-rpg/rpg/item.c \ + libmlk-rpg/rpg/map-file.c \ + libmlk-rpg/rpg/map.c \ + libmlk-rpg/rpg/message.c \ + libmlk-rpg/rpg/rpg.c \ + libmlk-rpg/rpg/save.c \ + libmlk-rpg/rpg/selection.c \ + libmlk-rpg/rpg/spell.c \ + libmlk-rpg/rpg/team.c \ + libmlk-rpg/rpg/tileset-file.c \ + libmlk-rpg/rpg/tileset.c \ + libmlk-rpg/rpg/walksprite.c +LIBMLK_RPG_OBJS= ${LIBMLK_RPG_SRCS:.c=.o} +LIBMLK_RPG_DEPS= ${LIBMLK_RPG_SRCS:.c=.d} +LIBMLK_RPG_ASTS= libmlk-rpg/assets/sql/character-load.h \ + libmlk-rpg/assets/sql/character-save.h \ + libmlk-rpg/assets/sql/init.h \ + libmlk-rpg/assets/sql/property-get.h \ + libmlk-rpg/assets/sql/property-remove.h \ + libmlk-rpg/assets/sql/property-set.h + +LIBMLK_ADVENTURE= libmlk-adventure/libmlk-adventure.a +LIBMLK_ADVENTURE_SRCS= libmlk-adventure/adventure/action/chest.c \ + libmlk-adventure/adventure/action/spawner.c \ + libmlk-adventure/adventure/action/teleport.c \ + libmlk-adventure/adventure/assets.c \ + libmlk-adventure/adventure/character/black-cat.c \ + libmlk-adventure/adventure/character/neth.c \ + libmlk-adventure/adventure/dialog/save.c \ + libmlk-adventure/adventure/item/potion.c \ + libmlk-adventure/adventure/mapscene/mapscene.c \ + libmlk-adventure/adventure/molko.c \ + libmlk-adventure/adventure/spell/fire-minor.c \ + libmlk-adventure/adventure/state/battle.c \ + libmlk-adventure/adventure/state/continue.c \ + libmlk-adventure/adventure/state/mainmenu.c \ + libmlk-adventure/adventure/state/map.c \ + libmlk-adventure/adventure/state/panic.c \ + libmlk-adventure/adventure/state/splashscreen.c \ + libmlk-adventure/adventure/trace_hud.c +LIBMLK_ADVENTURE_OBJS= ${LIBMLK_ADVENTURE_SRCS:.c=.o} +LIBMLK_ADVENTURE_DEPS= ${LIBMLK_ADVENTURE_SRCS:.c=.d} + +# Not a real target, only headers. +LIBMLK_DATA_ASTS= libmlk-data/fonts/cubic.h \ + libmlk-data/fonts/lato.h \ + libmlk-data/fonts/pirata-one.h \ + libmlk-data/fonts/teutonic.h \ + libmlk-data/images/battle-background.h \ + libmlk-data/images/black-cat.h \ + libmlk-data/images/haunted-wood.h \ + libmlk-data/music/vabsounds-romance.h \ + libmlk-data/sounds/fire.h \ + libmlk-data/sounds/potion.h \ + libmlk-data/sprites/chest.h \ + libmlk-data/sprites/explosion.h \ + libmlk-data/sprites/faces.h \ + libmlk-data/sprites/john-sword.h \ + libmlk-data/sprites/john-walk.h \ + libmlk-data/sprites/john.h \ + libmlk-data/sprites/numbers.h \ + libmlk-data/sprites/people.h \ + libmlk-data/sprites/ui-cursor.h + +MLK_BCC= tools/bcc/mlk-bcc +MLK_BCC_SRCS= tools/bcc/main.c +MLK_BCC_OBJS= ${MLK_BCC_SRCS:.c=.o} +MLK_BCC_DEPS= ${MLK_BCC_SRCS:.c=.d} + +MLK_TILESET= tools/tileset/mlk-tileset +MLK_TILESET_SRCS= tools/tileset/main.c +MLK_TILESET_OBJS= ${MLK_TILESET_SRCS:.c=.o} +MLK_TILESET_DEPS= ${MLK_TILESET_SRCS:.c=.d} + +MLK_MAP= tools/map/mlk-map +MLK_MAP_SRCS= tools/map/main.c +MLK_MAP_OBJS= ${MLK_MAP_SRCS:.c=.o} +MLK_MAP_DEPS= ${MLK_MAP_SRCS:.c=.d} + +MLK_ADVENTURE= mlk-adventure/mlk-adventure +MLK_ADVENTURE_SRCS= mlk-adventure/main.c +MLK_ADVENTURE_OBJS= ${MLK_ADVENTURE_SRCS:.c=.o} +MLK_ADVENTURE_DEPS= ${MLK_ADVENTURE_SRCS:.c=.d} + +TARGETS= ${LIBMLK_ADVENTURE} \ + ${LIBMLK_CORE} \ + ${LIBMLK_RPG} \ + ${LIBMLK_SQLITE} \ + ${LIBMLK_UI} \ + ${MLK_ADVENTURE} \ + ${MLK_BCC} \ + ${MLK_MAP} \ + ${MLK_TILESET} + +SDL2_INCS:= $(shell pkg-config --cflags sdl2 SDL2_mixer SDL2_ttf SDL2_image) +SDL2_LIBS:= $(shell pkg-config --libs sdl2 SDL2_mixer SDL2_ttf SDL2_image) + +JANSSON_INCS:= $(shell pkg-config --cflags jansson) +JANSSON_LIBS:= $(shell pkg-config --libs jansson) + +ZSTD_INCS:= $(shell pkg-config --cflags libzstd) +ZSTD_LIBS:= $(shell pkg-config --libs libzstd) + +INCS= -I. \ + -Iextern/libsqlite \ + -Ilibmlk-core \ + -Ilibmlk-ui \ + -Ilibmlk-rpg \ + -Ilibmlk-adventure \ + ${SDL2_INCS} +DEFS= -DMOLKO_BINDIR=\"${BINDIR}\" \ + -DMOLKO_DATADIR=\"${DATADIR}\" \ + -DMOLKO_LOCALEDIR=\"${LOCALEDIR}\" \ + -DMOLKO_ABS_BINDIR=\"${PREFIX}/${BINDIR}\" \ + -DMOLKO_ABS_DATADIR=\"${PREFIX}/${DATADIR}\" \ + -DMOLKO_ABS_LOCALEDIR=\"${PREFIX}/${LOCALEDIR}\" + +ifeq (${NLS},1) +LIBS+= -lintl +SED.nls= s/@define WITH_NLS@/\#define MOLKO_WITH_NLS/ +else +SED.nls= /@define WITH_NLS@/d +endif + +.SUFFIXES: +.SUFFIXES: .c .o .h .map .ogg .png .sql .tileset .ttf + +all: ${TARGETS} + +config.h: config.h.in + @echo "SED $<" + @sed -e "${SED.nls}" < $< > $@ + +.c.o: + @echo "CC $<" + @${CC} -MMD ${INCS} ${DEFS} ${CFLAGS} -c $< -o $@ + +# Binary files. +.ttf.h .png.h .ogg.h: + @echo "BCC $<" + @${MLK_BCC} -csu $< assets_$(notdir $<) > $@ + +# Text files. +.sql.h: + @echo "BCC $<" + @${MLK_BCC} -0csu $< assets_$(notdir $<) > $@ + +# Maps +.json.map: + @echo "MAP $<" + @${MLK_MAP} < $< > $@ + +.tileset.map: + @echo "TS $<" + @${MLK_TILESET} < $< > $@ + +-include ${LIBMLK_ADVENTURE_DEPS} +-include ${LIBMLK_CORE_DEPS} +-include ${LIBMLK_RPG_DEPS} +-include ${LIBMLK_SQLITE_DEPS} +-include ${LIBMLK_UI_DEPS} +-include ${MLK_ADVENTURE_DEPS} +-include ${MLK_BCC_DEPS} +-include ${MLK_MAP_DEPS} +-include ${MLK_TILESET_DEPS} + +${LIBMLK_SQLITE}: ${LIBMLK_SQLITE_OBJS} + @echo "AR $@" + @${AR} -rc $@ ${LIBMLK_SQLITE_OBJS} + +${LIBMLK_CORE_OBJS}: config.h + +${LIBMLK_CORE}: ${LIBMLK_CORE_OBJS} + @echo "AR $@" + @${AR} -rc $@ ${LIBMLK_CORE_OBJS} + +${LIBMLK_UI_ASTS}: ${MLK_BCC} +${LIBMLK_UI_OBJS}: ${LIBMLK_UI_ASTS} + +${LIBMLK_UI}: ${LIBMLK_CORE} ${LIBMLK_UI_OBJS} + @echo "AR $@" + @${AR} -rc $@ ${LIBMLK_UI_OBJS} + +${LIBMLK_RPG_ASTS}: ${MLK_BCC} +${LIBMLK_RPG_OBJS}: ${LIBMLK_RPG_ASTS} + +${LIBMLK_RPG}: ${LIBMLK_UI} ${LIBMLK_SQLITE} ${LIBMLK_RPG_OBJS} + @echo "AR $@" + @${AR} -rc $@ ${LIBMLK_RPG_OBJS} + +${LIBMLK_ADVENTURE_ASTS}: ${MLK_BCC} +${LIBMLK_ADVENTURE_OBJS}: ${LIBMLK_ADVENTURE_ASTS} + +${LIBMLK_ADVENTURE}: ${LIBMLK_RPG} ${LIBMLK_ADVENTURE_OBJS} + @echo "AR $@" + @${AR} -rc $@ ${LIBMLK_ADVENTURE_OBJS} + +${MLK_BCC}: ${MLK_BCC_OBJS} + @echo "CCLD $@" + @${CC} ${CFLAGS} -o $@ ${MLK_BCC_OBJS} ${SDL2_LIBS} ${LDFLAGS} + +${MLK_TILESET}: ${MLK_TILESET_OBJS} + @echo "CCLD $@" + @${CC} ${CFLAGS} -o $@ ${MLK_TILESET_OBJS} ${JANSSON_LIBS} ${LDFLAGS} + +${MLK_MAP}: ${MLK_MAP_OBJS} + @echo "CCLD $@" + @${CC} ${CFLAGS} -o $@ ${MLK_MAP_OBJS} ${JANSSON_LIBS} ${LDFLAGS} + +${MLK_ADVENTURE_OBJS}: ${LIBMLK_ADVENTURE} + +${MLK_ADVENTURE}: ${MLK_ADVENTURE_OBJS} + @echo "CCLD $@" + @${CC} ${CFLAGS} -o $@ ${MLK_ADVENTURE_OBJS} ${LIBMLK_ADVENTURE} \ + ${LIBMLK_RPG} ${LIBMLK_UI} ${LIBMLK_CORE} ${LIBMLK_SQLITE} \ + ${SDL2_LIBS} ${ZSTD_LIBS} ${LIBS} ${LDFLAGS} + +clean: + @echo "cleaning" + @rm -f config.h tags + @rm -f ${LIBMLK_ADVENTURE} ${LIBMLK_ADVENTURE_OBJS} ${LIBMLK_ADVENTURE_DEPS} + @rm -f ${LIBMLK_CORE} ${LIBMLK_CORE_OBJS} ${LIBMLK_CORE_DEPS} + @rm -f ${LIBMLK_RPG} ${LIBMLK_RPG_OBJS} ${LIBMLK_RPG_DEPS} ${LIBMLK_RPG_ASTS} + @rm -f ${LIBMLK_UI} ${LIBMLK_UI_OBJS} ${LIBMLK_UI_DEPS} ${LIBMLK_UI_ASTS} + @rm -f ${LIBMLK_SQLITE} ${LIBMLK_SQLITE_OBJS} ${LIBMLK_SQLITE_DEPS} ${LIBMLK_SQLITE_ASTS} + @rm -f ${LIBMLK_DATA_ASTS} + @rm -f ${MLK_ADVENTURE} ${MLK_ADVENTURE_OBJS} ${MLK_ADVENTURE_DEPS} + @rm -f ${MLK_BCC} ${MLK_BCC_OBJS} ${MLK_BCC_DEPS} + @rm -f ${MLK_MAP} ${MLK_MAP_OBJS} ${MLK_MAP_DEPS} + @rm -f ${MLK_TILESET} ${MLK_TILESET_OBJS} ${MLK_TILESET_DEPS} + +.PHONY: all clean
--- a/cmake/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -# -# 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. -# - -project(cmake) - -add_custom_target( - cmake - SOURCES - ${cmake_SOURCE_DIR}/CMakeLists.txt - ${cmake_SOURCE_DIR}/FindJansson.cmake - ${cmake_SOURCE_DIR}/FindSDL2.cmake - ${cmake_SOURCE_DIR}/MolkoBuildAssets.cmake - ${cmake_SOURCE_DIR}/MolkoBuildMaps.cmake - ${cmake_SOURCE_DIR}/MolkoBuildTranslations.cmake - ${cmake_SOURCE_DIR}/MolkoDefineExecutable.cmake - ${cmake_SOURCE_DIR}/MolkoDefineLibrary.cmake - ${cmake_SOURCE_DIR}/MolkoDefineTest.cmake - ${cmake_SOURCE_DIR}/MolkoSetBuildDirectories.cmake - ${cmake_SOURCE_DIR}/MolkoSetCompilerFlags.cmake - COMMENT - "Dummy target to list CMake files in IDEs" -) - -set_target_properties(cmake PROPERTIES FOLDER misc)
--- a/cmake/FindJansson.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -# -# FindJansson.cmake -- find Jansson C library -# -# 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. -# -# Find Jansson library, this modules defines: -# -# Jansson_INCLUDE_DIRS, where to find jansson.h -# Jansson_LIBRARIES, where to find library -# Jansson_FOUND, if it is found -# -# The following imported targets will be available: -# -# Jansson::Jansson, if found. -# - -find_path(Jansson_INCLUDE_DIR NAMES jansson.h) -find_library(Jansson_LIBRARY NAMES libjansson jansson) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - Jansson - FOUND_VAR Jansson_FOUND - REQUIRED_VARS Jansson_LIBRARY Jansson_INCLUDE_DIR -) - -if (Jansson_FOUND) - set(Jansson_LIBRARIES ${Jansson_LIBRARY}) - set(Jansson_INCLUDE_DIRS ${Jansson_INCLUDE_DIR}) - - if (NOT TARGET Jansson::Jansson) - add_library(Jansson::Jansson UNKNOWN IMPORTED) - set_target_properties( - Jansson::Jansson - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${Jansson_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${Jansson_INCLUDE_DIRS}" - ) - endif () -endif () - -mark_as_advanced(Jansson_INCLUDE_DIR Jansson_LIBRARY)
--- a/cmake/FindSDL2.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -# -# FindSDL2.cmake -- find SDL2 library and addons -# -# 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. -# -# Find SDL2 library and components, this modules defines: -# -# SDL2_LIBRARY, the name of the library to link against. -# SDL2_MAIN_LIBRARY, for SDL2main (if present). -# SDL2_LIBRARIES, alias to SDL2_LIBRARY. -# SDL2_FOUND, true if found. -# SDL2_INCLUDE_DIR, where to find SDL.h. -# -# The following imported targets will be defined: -# -# SDL2::SDL2 -# SDL2::SDL2main (if present) -# -# This module also handle the following official SDL addons: -# -# - image -# - mixer -# - net -# - ttf -# -# And thus, variables SDL2_<C>_LIBRARY, SDL2_<C>_INCLUDE_DIRS and SDL2::<C> -# imported targets will be defined if they are found. -# - -include(FindPackageHandleStandardArgs) - -# The official include convention is <SDL.h> not <SDL/SDL.h>. -find_path( - SDL2_INCLUDE_DIR - NAMES SDL.h - PATH_SUFFIXES include/SDL2 include -) - -find_library(SDL2_LIBRARY NAMES SDL2 libSDL2) -find_library(SDL2_MAIN_LIBRARY NAMES SDL2main libSDL2main) - -# Standard components. -foreach (c ${SDL2_FIND_COMPONENTS}) - find_path( - SDL2_${c}_INCLUDE_DIR - NAMES SDL.h - PATH_SUFFIXES include/SDL2 include - ) - - find_library( - SDL2_${c}_LIBRARY - NAMES SDL2_${c} libSDL2_${c} - ) - - if (NOT TARGET SDL2::${c} AND SDL2_${c}_LIBRARY) - set(SDL2_${c}_FOUND TRUE) - add_library(SDL2::${c} UNKNOWN IMPORTED) - set_target_properties( - SDL2::${c} - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${SDL2_${c}_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_${c}_INCLUDE_DIRS}" - ) - endif () - - mark_as_advanced(SDL2_${c}_INCLUDE_DIR SDL2_${c}_LIBRARY) -endforeach () - -find_package_handle_standard_args( - SDL2 - REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR - HANDLE_COMPONENTS -) - -if (SDL2_FOUND) - set(SDL2_LIBRARIES ${SDL2_LIBRARY}) - set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) - - if (NOT TARGET SDL2::SDL2) - add_library(SDL2::SDL2 UNKNOWN IMPORTED) - set_target_properties( - SDL2::SDL2 - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${SDL2_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" - ) - endif () - - if (NOT TARGET SDL2::main AND SDL2_MAIN_LIBRARY) - add_library(SDL2::main UNKNOWN IMPORTED) - set_target_properties( - SDL2::main - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${SDL2_MAIN_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" - ) - endif () -endif () - -mark_as_advanced(SDL2_INCLUDE_DIR SDL2_LIBRARY)
--- a/cmake/FindZSTD.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -# -# FindZSTD.cmake -- find ZSTD C library -# -# 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. -# -# Find ZSTD library, this modules defines: -# -# ZSTD_INCLUDE_DIRS, where to find zstd.h -# ZSTD_LIBRARIES, where to find library -# ZSTD_FOUND, if it is found -# -# The following imported targets will be available: -# -# ZSTD::ZSTD, if found. -# - -find_path(ZSTD_INCLUDE_DIR NAMES zstd.h) -find_library(ZSTD_LIBRARY NAMES libzstd zstd) - -include(FindPackageHandleStandardArgs) - -find_package_handle_standard_args( - ZSTD - FOUND_VAR ZSTD_FOUND - REQUIRED_VARS ZSTD_LIBRARY ZSTD_INCLUDE_DIR -) - -if (ZSTD_FOUND) - set(ZSTD_LIBRARIES ${ZSTD_LIBRARY}) - set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR}) - - if (NOT TARGET ZSTD::ZSTD) - add_library(ZSTD::ZSTD UNKNOWN IMPORTED) - set_target_properties( - ZSTD::ZSTD - PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${ZSTD_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${ZSTD_INCLUDE_DIRS}" - ) - endif () -endif () - -mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
--- a/cmake/MolkoBuildAssets.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -# -# MolkoBuildAssets.cmake -- 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. -# - -# -# # molko_build_assets -# -# Generate custom commands to convert assets into C header files using mlk-bcc. -# The argument output will be set to contain every generated output so that the -# caller can set them as source input and be generated before the target itself. -# -# ## Synopsis: -# -# ```cmake -# molko_build_assets(assets outputs) -# ``` -# -# ## Example -# -# ```cmake -# molko_build_assets(image.png outputs) -# add_executable(main main.c ${outputs}) -# ``` -# -# Do not forget to add the CMake current binary directory -# `${CMAKE_CURRENT_BINARY_DIR}` through the include flags of the given target. -# -# Each file is generated using the exact same file hierarchy as the input so -# an input of foo/bar/baz.png will be generated as foo/bar/baz.h in the binary -# directory. The exported symbol use the pattern <last-directory>_<basename> so -# in the above example, the file variable would be "bar_baz" -# - -macro(molko_build_assets assets outputs) - set(${outputs}) - - foreach (a ${assets}) - file(RELATIVE_PATH basename ${CMAKE_CURRENT_SOURCE_DIR} ${a}) - string(REGEX REPLACE "\\..*$" ".h" output ${basename}) - set(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) - get_filename_component(outputdir ${output} DIRECTORY) - get_filename_component(name ${basename} NAME_WE) - get_filename_component(category ${outputdir} NAME) - get_filename_Component(extension ${a} EXT) - file(MAKE_DIRECTORY ${outputdir}) - - # For "text" files, we create a C array null-terminated. - if (${extension} MATCHES "\\.(txt|sql)") - set(arg0 -0) - else () - unset(arg0) - endif () - - add_custom_command( - OUTPUT ${output} - COMMAND $<TARGET_FILE:mlk-bcc> ${arg0} -csu ${a} ${category}-${name} > ${output} - DEPENDS - ${a} - $<TARGET_FILE:mlk-bcc> - COMMENT "Generate header file from ${basename}" - ) - - list(APPEND ${outputs} ${output}) - endforeach () -endmacro()
--- a/cmake/MolkoBuildMaps.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -# -# MolkoBuildMaps.cmake -- 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. -# - -# -# # molko_build_maps -# -# Convert [Tiled][] maps and tilesets into textual representations that can be -# loaded from Molko's Adventure API. -# -# ## Synopsis -# -# ```cmake -# molko_build_maps( -# OUTPUT_DIR output directory -# OUTPUTS output variables -# MAPS (Optional) List of maps -# TILESETS (Optional) List of tilesets -# ) -# ``` -# -# Argument MAPS and TILESETS should contain list of .json files generated from -# [Tiled][tiled] and store the result in OUTPUT_DIR -# -# Arguments OUTPUTS will be filled with genereted files from CMake and can be -# used as executable and input. -# -# [Tiled]: http://mapeditor.org -# - -macro(molko_build_maps) - set(options) - set(oneValueArgs OUTPUTS OUTPUT_DIR) - set(multiValueArgs MAPS TILESETS) - - cmake_parse_arguments(CV "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT CV_OUTPUT_DIR) - message(FATAL_ERROR "Missing OUTPUT_DIR argument") - endif () - if (NOT CV_OUTPUTS) - message(FATAL_ERROR "Missing OUTPUTS argument") - endif () - - set(${CV_OUTPUTS}) - - foreach (i ${CV_MAPS} ${CV_TILESETS}) - if (NOT IS_ABSOLUTE ${CMAKE_INSTALL_DATADIR}) - set(outputdir ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_DATADIR}/${CV_OUTPUT_DIR}) - else () - set(outputdir ${CMAKE_CURRENT_BINARY_DIR}/${CV_OUTPUT_DIR}) - endif () - - if (${i} IN_LIST CV_MAPS) - set(tool mlk-map) - set(ext .map) - else () - set(tool mlk-tileset) - set(ext .tileset) - endif () - - string(REGEX REPLACE "\\.json$" ${ext} output ${i}) - get_filename_component(output ${output} NAME) - - add_custom_command( - OUTPUT ${outputdir}/${output} - VERBATIM - COMMAND - ${CMAKE_COMMAND} -E make_directory ${outputdir} - COMMAND - $<TARGET_FILE:${tool}> < ${i} > ${outputdir}/${output} - COMMENT - "Generating object from ${i}" - DEPENDS $<TARGET_FILE:${tool}> ${i} - ) - - list(APPEND ${CV_OUTPUTS} ${outputdir}/${output}) - - install( - FILES ${outputdir}/${output} - DESTINATION ${CMAKE_INSTALL_DATADIR}/${CV_OUTPUT_DIR} - ) - endforeach () -endmacro ()
--- a/cmake/MolkoBuildTranslations.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -# -# MolkoBuildTranslations.cmake -- 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. -# - -# -# # molko_build_translations -# -# Build translations and update them. -# -# ## Synopsis -# -# ```cmake -# molko_build_translations( -# TARGET target name -# SOURCES target sources -# OUTPUTS output variable -# TRANSLATIONS list of localizations -# ) -# ``` -# -# Generate target and output commands for NLS (via GNU gettext) support for the -# given *TARGET* name. -# -# The argument *SOURCES* must contain sources to extract gettext keywords, it -# will search for _, N_. The list of *SOURCES* can contain any files, only .c -# and .h will be filtered. -# -# The argument *OUTPUTS* will be set with the generated .mo files in the binary -# directory and installed to *CMAKE_INSTALL_LOCALEDIR*. -# -# The argument *TRANSLATIONS* should contain a list of languages supported in the -# gettext form (ll_LL@variant, see ISO 639 and ISO 3166 for more details). -# -# This macro create a `<TARGET>-po` target that will recreate the .pot file and -# every .po files in the nls/ directory for each language specified in -# *TRANSLATIONS*. Note, if you add a new language into translations but do not -# copy the .pot file, a warning will be issued and you should copy the .pot -# file as the new .po language file. -# -# Since the target is modifying files directly in the source tree they are not -# included in any build process and must be invoked manually. -# - -if (MOLKO_WITH_NLS) - find_program(XGETTEXT_EXE xgettext) - find_program(MSGMERGE_EXE msgmerge) - find_program(MSGFMT_EXE msgfmt) -endif () - -if (MOLKO_WITH_NLS AND XGETTEXT_EXE AND MSGMERGE_EXE) - macro(molko_build_translations) - set(options) - set(oneValueArgs TARGET OUTPUTS) - set(multiValueArgs SOURCES TRANSLATIONS) - - cmake_parse_arguments(NLS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT NLS_OUTPUTS) - message(FATAL_ERROR "Missing OUTPUTS argument") - endif () - if (NOT NLS_TARGET) - message(FATAL_ERROR "Missing TARGET argument") - endif () - if (NOT NLS_SOURCES) - message(FATAL_ERROR "Missing SOURCES argument") - endif () - - # Remove non C files. - list(FILTER NLS_SOURCES INCLUDE REGEX "\\.[ch$]") - set(pot ${CMAKE_CURRENT_SOURCE_DIR}/nls/${NLS_TARGET}.pot) - - # First command to generate the .pot. - list( - APPEND - commands - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/nls - COMMAND ${XGETTEXT_EXE} -cj -k_ -kN_ -LC -s -o ${pot} ${NLS_SOURCES} - ) - - # - # For every translation create a msgmerge command and output - # file. - # - set(outputs) - - foreach (t ${NLS_TRANSLATIONS}) - set(po ${CMAKE_CURRENT_SOURCE_DIR}/nls/${t}.po) - - # - # If library dir isn't absolute, install them in the - # build directory so we can use translations during - # development. - # - if (NOT IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) - set(modir ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES) - set(mo ${modir}/${NLS_TARGET}.mo) - else () - set(modir ${CMAKE_CURRENT_BINARY_DIR}/${t}) - set(mo ${CMAKE_CURRENT_BINARY_DIR}/${NLS_TARGET}.mo) - endif () - - if (NOT EXISTS ${po}) - message(WARNING "Missing translation ${po}") - endif () - - # Commands to generate .po files from the .pot. - list(APPEND commands COMMAND ${MSGMERGE_EXE} --backup=off -q -U ${po} ${pot}) - - # Finally generate a .mo output from po file. - add_custom_command( - OUTPUT ${mo} - VERBATIM - COMMAND ${CMAKE_COMMAND} -E make_directory ${modir} - COMMAND ${MSGFMT_EXE} -o ${mo} ${po} - DEPENDS ${po} - COMMENT "Generating translation binary ${mo}" - ) - - list(APPEND outputs ${mo}) - - install( - FILES ${mo} - DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES - RENAME ${NLS_TARGET}.mo - ) - endforeach () - - set(${NLS_OUTPUTS} ${outputs}) - source_group("mo" FILES ${outputs}) - - # User target to update .pot and .po files. - add_custom_target( - ${NLS_TARGET}-po - VERBATIM - COMMENT "Generating translations for ${NLS_TARGET}" - ${commands} - ) - - set_target_properties(${NLS_TARGET}-po PROPERTIES FOLDER nls) - endmacro() -else () - function(molko_build_translations) - endfunction() -endif ()
--- a/cmake/MolkoDefineExecutable.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -# -# MolkoDefineTest.cmake -- 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. -# - -# -# # molko_define_executable -# -# Create an executable. -# -# ## Synopsis -# -# ```cmake -# molko_define_test( -# TARGET target name -# SOURCES src1, src2, srcn -# FOLDER (Optional) IDE folder if supported -# TRANSLATIONS (Optional) list of translations -# ASSETS (Optional) list of assets to build -# FLAGS (Optional) C flags (without -D) -# LIBRARIES (Optional) libraries to link -# INCLUDES (Optional) includes -# INSTALL (Optional) create install target -# ) -# ``` -# -# Create an executable with the name *TARGET* with the given *SOURCES*. -# -# Optional include paths, libraries and flags can be specified via *INCLUDES*, -# *LIBRARIES* and *FLAGS* arguments respectively. -# -# If argument *ASSETS* is set, they are generated in the target binary -# directory. -# -# The optional argument *TRANSLATIONS* should contain a list of supported -# translations. See molko_build_translations for more info. -# - -include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildTranslations.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetBuildDirectories.cmake) - -function(molko_define_executable) - set(options INSTALL) - set(oneValueArgs FOLDER TARGET) - set(multiValueArgs ASSETS FLAGS INCLUDES LIBRARIES SOURCES TRANSLATIONS) - - cmake_parse_arguments(EXE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT EXE_TARGET) - message(FATAL_ERROR "Missing TARGET argument") - endif () - if (NOT EXE_SOURCES) - message(FATAL_ERROR "Missing SOURCES argument") - endif () - - molko_build_assets("${EXE_ASSETS}" OUTPUTS) - - if (EXE_TRANSLATIONS) - molko_build_translations( - TARGET ${EXE_TARGET} - TRANSLATIONS ${EXE_TRANSLATIONS} - SOURCES ${EXE_SOURCES} - ) - endif () - - add_executable(${EXE_TARGET} ${EXE_SOURCES} ${OUTPUTS}) - target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS}) - target_include_directories(${EXE_TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${EXE_INCLUDES}) - target_link_libraries(${EXE_TARGET} PRIVATE ${EXE_LIBRARIES}) - - if (EXE_FOLDER) - set_target_properties(${EXE_TARGET} PROPERTIES FOLDER ${EXE_FOLDER}) - endif () - if (EXE_INSTALL) - install(TARGETS ${EXE_TARGET} DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif () - - molko_set_compiler_flags(${EXE_TARGET}) - molko_set_build_directories(${EXE_TARGET}) -endfunction()
--- a/cmake/MolkoDefineLibrary.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -# -# MolkoDefineLibrary.cmake -- 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. -# - -# -# # molko_define_library -# -# Create any kind of library. -# -# ## Synopsis -# -# ```cmake -# 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 -# LIBRARIES (Optional) libraries to link -# FLAGS (Optional) C flags (without -D) -# INCLUDES (Optional) local includes for the target only -# ) -# ``` -# -# Create a library and optionally install it. -# -# The function create a new library named with the parameter *TARGET*, you -# should prefix it with "lib" as its the convention within molko (e.g. libfoo), -# the prefix is automatically removed. -# -# 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). -# -# The optional arguments *LIBRARIES*, *FLAGS* and *INCLUDES* are passed to the -# respective CMake command [target_link_libraries][], -# [target_compile_definitions][] and [target_include_directories][] -# respectively. As such, it is necessary to specify the scope (PUBLIC, PRIVATE -# or INTERFACE) for every argument. -# -# If *FOLDER* option is set, it is organized into its name under the IDE if -# supported. -# -# [target_compile_definitions]: https://cmake.org/cmake/help/latest/command/target_compile_definitions.html -# [target_include_directories]: https://cmake.org/cmake/help/latest/command/target_include_directories.html -# [target_link_libraries]: https://cmake.org/cmake/help/latest/command/target_link_libraries.html -# - -include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetBuildDirectories.cmake) - -function(molko_define_library) - set(options EXTERNAL) - set(oneValueArgs FOLDER TARGET TYPE) - set(multiValueArgs ASSETS FLAGS INCLUDES LIBRARIES SOURCES TRANSLATIONS) - - cmake_parse_arguments(LIB "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT LIB_TARGET) - message(FATAL_ERROR "Missing TARGET argument") - endif () - if (NOT LIB_SOURCES) - message(FATAL_ERROR "Missing SOURCES argument") - endif () - - molko_build_assets("${LIB_ASSETS}" ASSETS_OUTPUTS) - - if (LIB_TRANSLATIONS) - molko_build_translations( - TARGET ${LIB_TARGET} - TRANSLATIONS ${LIB_TRANSLATIONS} - SOURCES ${LIB_SOURCES} - OUTPUTS NLS_OUTPUTS - ) - endif () - - add_library( - ${LIB_TARGET} - ${LIB_TYPE} - ${ASSETS_OUTPUTS} - ${LIB_SOURCES} - ${NLS_OUTPUTS} - ) - - if (NOT LIB_TYPE OR NOT ${LIB_TYPE} MATCHES INTERFACE) - molko_set_build_directories(${LIB_TARGET}) - target_include_directories(${LIB_TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - endif () - - if (LIB_INCLUDES) - target_include_directories(${LIB_TARGET} ${LIB_INCLUDES}) - endif () - if (LIB_FLAGS) - target_compile_definitions(${LIB_TARGET} ${LIB_FLAGS}) - endif () - if (LIB_LIBRARIES) - target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES}) - endif () - - set_target_properties( - ${LIB_TARGET} - PROPERTIES - PREFIX "" - IMPORT_PREFIX "" - C_EXTENSIONS Off - C_STANDARD 11 - C_STANDARD_REQUIRED On - ) - - if (LIB_FOLDER) - set_target_properties(${LIB_TARGET} PROPERTIES FOLDER ${LIB_FOLDER}) - endif () -endfunction()
--- a/cmake/MolkoDefineTest.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -# -# MolkoDefineTest.cmake -- 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. -# - -# -# # molko_define_test -# -# Create unit test. -# -# ## Synopsis -# -# ```cmake -# molko_define_test( -# TARGET target name -# SOURCES src1, src2, srcn -# ASSETS (Optional) list of assets to build -# FLAGS (Optional) C flags (without -D) -# LIBRARIES (Optional) libraries to link -# INCLUDES (Optional) includes -# ) -# ``` -# -# Create an executable with the name *TARGET* and a test case of the same name -# with the given *SOURCES*. -# -# Optional include paths, libraries and flags can be specified via *INCLUDES*, -# *LIBRARIES* and *FLAGS* arguments respectively. -# -# If argument *ASSETS* is set, they are generated in the target binary -# directory. -# - -include(${CMAKE_CURRENT_LIST_DIR}/MolkoBuildAssets.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/MolkoSetCompilerFlags.cmake) - -function(molko_define_test) - set(options) - set(oneValueArgs TARGET) - set(multiValueArgs ASSETS FLAGS INCLUDES LIBRARIES SOURCES) - - cmake_parse_arguments(TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT TEST_TARGET) - message(FATAL_ERROR "Missing TARGET argument") - endif () - if (NOT TEST_SOURCES) - message(FATAL_ERROR "Missing SOURCES argument") - endif () - - molko_build_assets("${TEST_ASSETS}" OUTPUTS) - - add_executable(test-${TEST_TARGET} ${TEST_SOURCES} ${OUTPUTS}) - target_compile_definitions(test-${TEST_TARGET} PRIVATE ${TEST_FLAGS}) - target_include_directories( - test-${TEST_TARGET} - PRIVATE - ${CMAKE_CURRENT_BINARY_DIR} - ${TEST_INCLUDES} - ) - target_link_libraries( - test-${TEST_TARGET} - PRIVATE - libmlk-core - libmlk-adventure - 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()
--- a/cmake/MolkoSetBuildDirectories.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -# -# MolkoSetBuildDirectories.cmake -- 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. -# - -# -# # molko_set_build_directories -# -# Change build directories for the given target. -# -# ## Synopsis -# -# ```cmake -# molko_set_build_directories(target) -# ``` -# -# This function will set output directories for the given target. It is -# necessary so that binaries can know where to find extra data. -# - -function(_msbd_set_dir target property value) - if (NOT IS_ABSOLUTE ${value}) - set_target_properties( - ${target} - PROPERTIES - ${property} ${CMAKE_BINARY_DIR}/${value} - ) - - foreach (c ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${c} cfg) - set_target_properties( - ${target} - PROPERTIES - ${property}_${cfg} ${CMAKE_BINARY_DIR}/${c}/${value} - ) - endforeach () - endif () - -endfunction() - -function(molko_set_build_directories target) - _msbd_set_dir(${target} ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) - _msbd_set_dir(${target} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR}) - _msbd_set_dir(${target} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_INSTALL_BINDIR}) -endfunction()
--- a/cmake/MolkoSetCompilerFlags.cmake Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -# -# 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. -# - -# -# # molko_set_compiler_flags -# -# Set default compiler flags for the given target. -# -# ## Synopsis -# -# ```cmake -# molko_set_compiler_flags(target) -# ``` -# -# This function will adds some compiler flags for the development such as -# warnings, sanitizers if the compiler is compatible. -# - -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 $<$<CONFIG:Debug>:-fsanitize=address,undefined,integer>) - target_link_options(${target} PRIVATE $<$<CONFIG:Debug>:-fsanitize=address,undefined,integer>) - endif () -endfunction ()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config.h.in Wed Jun 23 22:41:34 2021 +0200 @@ -0,0 +1,1 @@ +@define WITH_NLS@
--- a/doc/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -# -# 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. -# - -project(doc) - -find_program(MKDOCS_EXE mkdocs DOC "Path to mkdocs") -find_program(SH_EXE sh DOC "Path to a POSIX shell") - -if (MKDOCS_EXE) - set( - DOC_SOURCES - ${doc_SOURCE_DIR}/docs/about.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoBuildAssets.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoBuildMaps.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoBuildTranslations.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoDefineExecutable.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoDefineLibrary.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoDefineTest.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoSetBuildDirectories.md - ${doc_SOURCE_DIR}/docs/cmake/MolkoSetCompilerFlags.md - ${doc_SOURCE_DIR}/docs/dev/api/core/action.md - ${doc_SOURCE_DIR}/docs/dev/api/core/alloc.md - ${doc_SOURCE_DIR}/docs/dev/api/core/animation.md - ${doc_SOURCE_DIR}/docs/dev/api/core/clock.md - ${doc_SOURCE_DIR}/docs/dev/api/core/color.md - ${doc_SOURCE_DIR}/docs/dev/api/core/core.md - ${doc_SOURCE_DIR}/docs/dev/api/core/drawable.md - ${doc_SOURCE_DIR}/docs/dev/api/core/event.md - ${doc_SOURCE_DIR}/docs/dev/api/core/error.md - ${doc_SOURCE_DIR}/docs/dev/api/core/font.md - ${doc_SOURCE_DIR}/docs/dev/api/core/game.md - ${doc_SOURCE_DIR}/docs/dev/api/core/image.md - ${doc_SOURCE_DIR}/docs/dev/api/core/inhibit.md - ${doc_SOURCE_DIR}/docs/dev/api/core/key.md - ${doc_SOURCE_DIR}/docs/dev/api/core/maths.md - ${doc_SOURCE_DIR}/docs/dev/api/core/mouse.md - ${doc_SOURCE_DIR}/docs/dev/api/core/music.md - ${doc_SOURCE_DIR}/docs/dev/api/core/painter.md - ${doc_SOURCE_DIR}/docs/dev/api/core/panic.md - ${doc_SOURCE_DIR}/docs/dev/api/core/save.md - ${doc_SOURCE_DIR}/docs/dev/api/core/script.md - ${doc_SOURCE_DIR}/docs/dev/api/core/sound.md - ${doc_SOURCE_DIR}/docs/dev/api/core/sprite.md - ${doc_SOURCE_DIR}/docs/dev/api/core/state.md - ${doc_SOURCE_DIR}/docs/dev/api/core/sys.md - ${doc_SOURCE_DIR}/docs/dev/api/core/texture.md - ${doc_SOURCE_DIR}/docs/dev/api/core/trace.md - ${doc_SOURCE_DIR}/docs/dev/api/core/translate.md - ${doc_SOURCE_DIR}/docs/dev/api/core/util.md - ${doc_SOURCE_DIR}/docs/dev/api/core/window.md - ${doc_SOURCE_DIR}/docs/dev/error.md - ${doc_SOURCE_DIR}/docs/dev/faq.md - ${doc_SOURCE_DIR}/docs/dev/howto/01-init.md - ${doc_SOURCE_DIR}/docs/dev/ownership.md - ${doc_SOURCE_DIR}/docs/index.md - ${doc_SOURCE_DIR}/docs/install.md - ${doc_SOURCE_DIR}/docs/specs/map.md - ${doc_SOURCE_DIR}/docs/specs/tileset.md - ${doc_SOURCE_DIR}/docs/tools/bcc.md - ${doc_SOURCE_DIR}/docs/tools/map.md - ${doc_SOURCE_DIR}/docs/tools/tileset.md - ${doc_SOURCE_DIR}/mkdocs.yml - ) - - add_custom_target( - doc - VERBATIM - SOURCES ${DOC_SOURCES} - WORKING_DIRECTORY ${doc_SOURCE_DIR} - COMMAND - ${MKDOCS_EXE} build -d ${doc_BINARY_DIR}/html - ) - - add_custom_target( - doc-serve - VERBATIM - SOURCES ${DOC_SOURCES} - WORKING_DIRECTORY ${doc_SOURCE_DIR} - COMMAND - ${MKDOCS_EXE} serve - ) - - set_target_properties(doc doc-serve PROPERTIES FOLDER doc) - source_group(TREE ${doc_SOURCE_DIR} FILES ${DOC_SOURCES}) -endif () - -if (SH_EXE) - # Our CMake macros are extracted from the source code itself. - set( - DOC_MACROS - ${cmake_SOURCE_DIR}/MolkoBuildAssets.cmake - ${cmake_SOURCE_DIR}/MolkoBuildMaps.cmake - ${cmake_SOURCE_DIR}/MolkoBuildTranslations.cmake - ${cmake_SOURCE_DIR}/MolkoDefineExecutable.cmake - ${cmake_SOURCE_DIR}/MolkoDefineLibrary.cmake - ${cmake_SOURCE_DIR}/MolkoDefineTest.cmake - ${cmake_SOURCE_DIR}/MolkoSetBuildDirectories.cmake - ${cmake_SOURCE_DIR}/MolkoSetCompilerFlags.cmake - ) - - foreach (m ${DOC_MACROS}) - get_filename_component(file ${m} NAME_WE) - set(output ${doc_SOURCE_DIR}/docs/cmake/${file}.md) - - list( - APPEND commands - COMMAND - ${SH_EXE} ${doc_SOURCE_DIR}/scripts/cmake-extract.sh ${m} > ${output} - ) - endforeach () - - # Create a non-ALL target to update CMake documentation in the source - # tree. - add_custom_target( - doc-cmake - VERBATIM - DEPENDS ${doc_SOURCE_DIR}/scripts/cmake-extract.sh - COMMENT "Updating in-source ${doc_SOURCE_DIR}/docs/cmake" - COMMAND ${commands} - ) - - set_target_properties(doc-cmake PROPERTIES FOLDER doc) -endif ()
--- a/examples/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -# -# 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. -# - -project(examples) - -add_subdirectory(example-action) -add_subdirectory(example-animation) -add_subdirectory(example-audio) -add_subdirectory(example-battle) -add_subdirectory(example-cursor) -add_subdirectory(example-debug) -add_subdirectory(example-drawable) -add_subdirectory(example-font) -add_subdirectory(example-gridmenu) -add_subdirectory(example-label) -add_subdirectory(example-message) -add_subdirectory(example-sprite) -add_subdirectory(example-trace) -add_subdirectory(example-ui)
--- a/examples/example-action/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-action) - -molko_define_executable( - TARGET example-action - SOURCES ${example-action_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-data libmlk-rpg -)
--- a/examples/example-animation/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-animation) - -molko_define_executable( - TARGET example-animation - SOURCES ${example-animation_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-data libmlk-ui -)
--- a/examples/example-audio/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-audio) - -molko_define_executable( - TARGET example-audio - SOURCES ${example-audio_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-data libmlk-ui -)
--- a/examples/example-battle/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -# -# 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. -# - -project(example-battle) - -molko_define_executable( - TARGET example-battle - SOURCES - ${example-battle_SOURCE_DIR}/main.c - ${example-battle_SOURCE_DIR}/spell-fire.c - ${example-battle_SOURCE_DIR}/spell-fire.h - ${example-battle_SOURCE_DIR}/registry.c - ${example-battle_SOURCE_DIR}/registry.h - FOLDER examples - LIBRARIES libmlk-rpg libmlk-adventure libmlk-data -)
--- a/examples/example-cursor/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-cursor) - -molko_define_executable( - TARGET example-cursor - SOURCES ${example-cursor_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui -)
--- a/examples/example-debug/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-debug) - -molko_define_executable( - TARGET example-debug - SOURCES ${example-debug_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui -)
--- a/examples/example-drawable/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-drawable) - -molko_define_executable( - TARGET example-drawable - SOURCES ${example-drawable_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui libmlk-data -)
--- a/examples/example-font/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-font) - -molko_define_executable( - TARGET example-font - SOURCES ${example-font_SOURCE_DIR}/main.c - LIBRARIES libmlk-ui - FOLDER examples -)
--- a/examples/example-gridmenu/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-gridmenu) - -molko_define_executable( - TARGET example-gridmenu - SOURCES ${example-gridmenu_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui -)
--- a/examples/example-label/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-label) - -molko_define_executable( - TARGET example-label - SOURCES ${example-label_SOURCE_DIR}/main.c - LIBRARIES libmlk-ui - FOLDER examples -)
--- a/examples/example-message/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-message) - -molko_define_executable( - TARGET example-message - SOURCES ${example-message_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-rpg -)
--- a/examples/example-sprite/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-sprite) - -molko_define_executable( - TARGET example-sprite - SOURCES ${example-sprite_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui libmlk-data -)
--- a/examples/example-trace/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-trace) - -molko_define_executable( - TARGET example-trace - SOURCES ${example-trace_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui libmlk-adventure -)
--- a/examples/example-ui/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(example-ui) - -molko_define_executable( - TARGET example-ui - SOURCES ${example-ui_SOURCE_DIR}/main.c - FOLDER examples - LIBRARIES libmlk-ui -)
--- a/extern/LICENSE.libcompat.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -libcompat LICENSES -================== - -Some files in this projects are licensed under different licenses and must be -checked individually. Few files are kindly borrowed from OpenBSD and other -projects. - -Other home made code in this repository is licensed under the following license: - -ISC ---- - -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.
--- a/extern/VERSION.libcompat.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -22f469e8bd5a
--- a/extern/libcompat/CHANGES.md Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -libcompat CHANGES -================= - -libcompat current ------------------------------ - -project name 1.0.0 2017-12-25 ------------------------------ - -- Some topic, -- Other topics.
--- a/extern/libcompat/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libcompat -# -# 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. -# - -cmake_minimum_required(VERSION 3.10) -project(libcompat) - -include(CheckFunctionExists) -include(CheckIncludeFile) - -set( - SOURCES - ${libcompat_SOURCE_DIR}/src/compat.c - ${libcompat_SOURCE_DIR}/src/compat.h.in -) - -set( - FUNCTIONS - # BSD extensions. - pledge - reallocarray - recallocarray - strdup - strlcat - strlcpy - strndup - strsep - # POSIX functions. - basename - dirname - getopt - strnlen -) - -set( - INCLUDES - # POSIX extensions. - unistd.h - libgen.h -) - -foreach (f ${FUNCTIONS}) - string(TOUPPER ${f} var) - - check_function_exists(${f} COMPAT_HAVE_${var}) - - if (NOT COMPAT_HAVE_${var}) - list(APPEND SOURCES ${libcompat_SOURCE_DIR}/src/${f}.c) - endif () -endforeach () - -configure_file( - ${libcompat_SOURCE_DIR}/src/compat.h.in - ${libcompat_BINARY_DIR}/compat.h -) - -add_library(libcompat STATIC ${SOURCES}) -target_include_directories( - libcompat - PUBLIC - $<BUILD_INTERFACE:${libcompat_BINARY_DIR}> -) -target_compile_definitions(libcompat PUBLIC _BSD_SOURCE) -set_target_properties(libcompat PROPERTIES PREFIX "" FOLDER extern) - -foreach (i ${INCLUDES}) - string(TOUPPER ${i} var) - string(REGEX REPLACE "\\." "_" var ${var}) - - check_include_file(${i} COMPAT_HAVE_${var}) - - if (NOT COMPAT_HAVE_${var}) - file(WRITE ${libcompat_BINARY_DIR}/${i} "/* Empty stub for ${i}. */\n") - endif () -endforeach () - -# POSIX dirent.h -check_include_file(dirent.h COMPAT_HAVE_DIRENT_H) - -if (NOT COMPAT_HAVE_DIRENT_H) - if (CMAKE_SYSTEM_NAME MATCHES "Windows") - target_include_directories( - libcompat - PUBLIC - $<BUILD_INTERFACE:${libcompat_SOURCE_DIR}/win/dirent - ) - endif () -endif () - -# Math library -find_library(COMPAT_HAVE_LIBM m) - -if (NOT COMPAT_HAVE_LIBM) - add_library(m INTERFACE) -endif ()
--- a/extern/libcompat/CREDITS.md Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -libcompat CREDITS -================= - -Libraries and projects ----------------------- - -- [OpenBSD](http://openbsd.org): innovated several technologies. -- [dirent.h for Windows](https://github.com/tronkko/dirent): polyfill - implementation for Windows.
--- a/extern/libcompat/LICENSE.md Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -libcompat LICENSES -================== - -Some files in this projects are licensed under different licenses and must be -checked individually. Few files are kindly borrowed from OpenBSD and other -projects. - -Other home made code in this repository is licensed under the following license: - -ISC ---- - -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.
--- a/extern/libcompat/README.md Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -libcompat -========= - -This project contains several polyfill for various C extensions that are not -part of C standard or POSIX. - -For example, it contains various functions such as: - -- pledge: privileges separation from OpenBSD (no-op on other systems), -- reallocarray/recallocarray: safe alternative to realloc for arrays from - OpenBSD, -- strlcpy/strlcat: safer alternatives to strncpy/strncat from OpenBSD, -- strsep: better alternative to strtok from 4.4BSD. - -Requirements ------------- - -- C compiler, -- POSIX conformant system (ar, make, sh, rm, tr, touch). - -Usage ------ - -The easiest way to use libcompat is to copy the directory content into your -project and to adapt files you need. - -Every routine (or group of routines) is implemented into an individual file -plus tested with a test file. - -Example with strlcpy: - -- libcompat/strlcpy.c -- libcompat/test-strlcpy.c - -Then, the build process create the following output files, example with -strlcpy: - -- libcompat/strlcpy.t: output of the compiler command, usually empty on - success. -- libcompat/strlcpy.h: a header file containing `#define COMPAT_HAVE_STRLCPY` - if the test succeed. -- libcompat/strlcpy.o: object file containing fallback implementation or - nothing if the component is available in the host system. - -Finally, when you want to use one of the extension, you'll have to import the -header file where it's supposed to be declared (unless this header file is not -portable) and you also must include libcompat/compat.h. - -Example with strlcpy: - - #include <string.h> - #include "libcompat/compat.h" - -### Wrapper script - -The convenient script libcompat/compile.sh will try co compile the test and -will either compile the polyfill or a dummy empty file instead. It should be -invoked with the canonical filename (without extension). - -It also read `CC`, `CFLAGS` and `LDFLAGS` environment variable which are all -optional. - -Example of use: - - ./libcompat/compile.sh strlcpy - CC="clang" CFLAGS="-O2" ./libcompat/compile.sh strlcat - -### Makefile - -The included Makefile can be used as boilerplate into your project and create a -libcompat.a archive ready to use. Simply adapt macros in the Makefile for your -own use. - -Licenses --------- - -Polyfill code are licensed per their authors and must be checked individually. -See headers in the libcompat directory. - -Author ------- - -David Demelier <markand@malikania.fr>
--- a/extern/libcompat/src/basename.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* $OpenBSD: basename.c,v 1.17 2020/10/20 19:30:14 naddy Exp $ */ - -/* - * Copyright (c) 1997, 2004 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and 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 <errno.h> -#include <libgen.h> -#include <limits.h> -#include <string.h> - -#ifndef PATH_MAX -# define PATH_MAX 2048 -#endif - -char * -basename(char *path) -{ - static char bname[PATH_MAX]; - size_t len; - const char *endp, *startp; - - /* Empty or NULL string gets treated as "." */ - if (path == NULL || *path == '\0') { - bname[0] = '.'; - bname[1] = '\0'; - return (bname); - } - - /* Strip any trailing slashes */ - endp = path + strlen(path) - 1; - while (endp > path && *endp == '/') - endp--; - - /* All slashes becomes "/" */ - if (endp == path && *endp == '/') { - bname[0] = '/'; - bname[1] = '\0'; - return (bname); - } - - /* Find the start of the base */ - startp = endp; - while (startp > path && *(startp - 1) != '/') - startp--; - - len = endp - startp + 1; - if (len >= sizeof(bname)) { - errno = ENAMETOOLONG; - return (NULL); - } - memcpy(bname, startp, len); - bname[len] = '\0'; - return (bname); -}
--- a/extern/libcompat/src/compat.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -int -libcompat_version() -{ - return 1; -}
--- a/extern/libcompat/src/compat.h.in Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -#ifndef LIBCOMPAT_COMPAT_H -#define LIBCOMPAT_COMPAT_H - -#cmakedefine COMPAT_HAVE_BASENAME -#cmakedefine COMPAT_HAVE_DIRNAME -#cmakedefine COMPAT_HAVE_PLEDGE -#cmakedefine COMPAT_HAVE_REALLOCARRAY -#cmakedefine COMPAT_HAVE_RECALLOCARRAY -#cmakedefine COMPAT_HAVE_STRDUP -#cmakedefine COMPAT_HAVE_STRLCAT -#cmakedefine COMPAT_HAVE_STRLCPY -#cmakedefine COMPAT_HAVE_STRNDUP -#cmakedefine COMPAT_HAVE_STRNLEN -#cmakedefine COMPAT_HAVE_STRSEP - -#include <stddef.h> - -#ifndef COMPAT_HAVE_BASENAME -char * -basename(char *); -#endif - -#ifndef COMPAT_HAVE_DIRNAME -char * -dirname(char *); -#endif - -#ifndef COMPAT_HAVE_PLEDGE -int -pledge(const char *, const char *); -#endif - -#ifndef COMPAT_HAVE_REALLOCARRAY -void * -reallocarray(void *, size_t, size_t); -#endif - -#ifndef COMPAT_HAVE_RECALLOCARRAY -void * -recallocarray(void *, size_t, size_t, size_t); -#endif - -#ifndef COMPAT_HAVE_STRDUP -char * -strdup(const char *); -#endif - -#ifndef COMPAT_HAVE_STRLCAT -size_t -strlcat(char *, const char *, size_t); -#endif - -#ifndef COMPAT_HAVE_STRLCPY -size_t -strlcpy(char *, const char *, size_t); -#endif - -#ifndef COMPAT_HAVE_STRNDUP -char * -strndup(const char *, size_t); -#endif - -#ifndef COMPAT_HAVE_STRNLEN -size_t -strnlen(const char *, size_t); -#endif - -#ifndef COMPAT_HAVE_STRSEP -char * -strsep(char **, const char *); -#endif - -#endif /* !LIBCOMPAT_COMPAT_H */
--- a/extern/libcompat/src/dirname.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* $OpenBSD: dirname.c,v 1.17 2020/10/20 19:30:14 naddy Exp $ */ - -/* - * Copyright (c) 1997, 2004 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and 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 <errno.h> -#include <libgen.h> -#include <limits.h> -#include <string.h> - -#ifndef PATH_MAX -# define PATH_MAX 2048 -#endif - -char * -dirname(char *path) -{ - static char dname[PATH_MAX]; - size_t len; - const char *endp; - - /* Empty or NULL string gets treated as "." */ - if (path == NULL || *path == '\0') { - dname[0] = '.'; - dname[1] = '\0'; - return (dname); - } - - /* Strip any trailing slashes */ - endp = path + strlen(path) - 1; - while (endp > path && *endp == '/') - endp--; - - /* Find the start of the dir */ - while (endp > path && *endp != '/') - endp--; - - /* Either the dir is "/" or there are no slashes */ - if (endp == path) { - dname[0] = *endp == '/' ? '/' : '.'; - dname[1] = '\0'; - return (dname); - } else { - /* Move forward past the separating slashes */ - do { - endp--; - } while (endp > path && *endp == '/'); - } - - len = endp - path + 1; - if (len >= sizeof(dname)) { - errno = ENAMETOOLONG; - return (NULL); - } - memcpy(dname, path, len); - dname[len] = '\0'; - return (dname); -}
--- a/extern/libcompat/src/getopt.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* - * Copyright (c) 1987, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int opterr = 1, /* if error message should be printed */ - optind = 1, /* index into parent argv vector */ - optopt, /* character checked for validity */ - optreset; /* reset getopt */ -char *optarg; /* argument associated with option */ - -#define BADCH (int)'?' -#define BADARG (int)':' -#define EMSG "" - -/* - * getopt -- - * Parse argc/argv argument vector. - */ -int -getopt(int nargc, char * const *nargv, const char *ostr) -{ - static char *place = EMSG; /* option letter processing */ - char *oli; /* option letter list index */ - - if (ostr == NULL) - return (-1); - - if (optreset || !*place) { /* update scanning pointer */ - optreset = 0; - if (optind >= nargc || *(place = nargv[optind]) != '-') { - place = EMSG; - return (-1); - } - if (place[1] && *++place == '-') { /* found "--" */ - ++optind; - place = EMSG; - return (-1); - } - } /* option letter okay? */ - if ((optopt = (int)*place++) == (int)':' || - !(oli = strchr(ostr, optopt))) { - /* - * if the user didn't specify '-' as an option, - * assume it means -1. - */ - if (optopt == (int)'-') - return (-1); - if (!*place) - ++optind; - if (opterr && *ostr != ':') - (void)fprintf(stderr, - "illegal option -- %c\n", optopt); - return (BADCH); - } - if (*++oli != ':') { /* don't need argument */ - optarg = NULL; - if (!*place) - ++optind; - } - else { /* need an argument */ - if (*place) /* no white space */ - optarg = place; - else if (nargc <= ++optind) { /* no arg */ - place = EMSG; - if (*ostr == ':') - return (BADARG); - if (opterr) - (void)fprintf(stderr, - "option requires an argument -- %c\n", - optopt); - return (BADCH); - } - else /* white space */ - optarg = nargv[optind]; - place = EMSG; - ++optind; - } - return (optopt); /* dump back option letter */ -}
--- a/extern/libcompat/src/pledge.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* - * pledge.c -- no-op implementation - * - * 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. - */ - -int -pledge(const char *promises, const char *execpromises) -{ - (void)promises; - (void)execpromises; - - return 0; -}
--- a/extern/libcompat/src/reallocarray.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* $OpenBSD: reallocarray.c,v 1.3 2015/09/13 08:31:47 guenther Exp $ */ -/* - * Copyright (c) 2008 Otto Moerbeek <otto@drijf.net> - * - * Permission to use, copy, modify, and 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 <sys/types.h> -#include <errno.h> -#include <stdint.h> -#include <stdlib.h> - -/* - * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX - * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW - */ -#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) - -void * -reallocarray(void *optr, size_t nmemb, size_t size) -{ - if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && - nmemb > 0 && SIZE_MAX / nmemb < size) { - errno = ENOMEM; - return NULL; - } - return realloc(optr, size * nmemb); -}
--- a/extern/libcompat/src/recallocarray.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* $OpenBSD: recallocarray.c,v 1.1 2017/03/06 18:44:21 otto Exp $ */ -/* - * Copyright (c) 2008, 2017 Otto Moerbeek <otto@drijf.net> - * - * Permission to use, copy, modify, and 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 <errno.h> -#include <stdlib.h> -#include <stdint.h> -#include <string.h> -#include <unistd.h> - -/* - * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX - * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW - */ -#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) - -void * -recallocarray(void *ptr, size_t oldnmemb, size_t newnmemb, size_t size) -{ - size_t oldsize, newsize; - void *newptr; - - if (ptr == NULL) - return calloc(newnmemb, size); - - if ((newnmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && - newnmemb > 0 && SIZE_MAX / newnmemb < size) { - errno = ENOMEM; - return NULL; - } - newsize = newnmemb * size; - - if ((oldnmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && - oldnmemb > 0 && SIZE_MAX / oldnmemb < size) { - errno = EINVAL; - return NULL; - } - oldsize = oldnmemb * size; - - newptr = malloc(newsize); - if (newptr == NULL) - return NULL; - - if (newsize > oldsize) { - memcpy(newptr, ptr, oldsize); - memset((char *)newptr + oldsize, 0, newsize - oldsize); - } else - memcpy(newptr, ptr, newsize); - - memset(ptr, 0, oldsize); - free(ptr); - - return newptr; -}
--- a/extern/libcompat/src/strdup.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* - * strdup.c -- strdup implementation - * - * 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. - */ - -#include <assert.h> -#include <stdlib.h> -#include <string.h> - -char * -strdup(const char *src) -{ - assert(src); - - char *ret; - size_t length; - - length = strlen(src) + 1; - - if (!(ret = malloc(length))) - return NULL; - - return memcpy(ret, src, length); -}
--- a/extern/libcompat/src/strlcat.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* $OpenBSD: strlcat.c,v 1.19 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1998, 2015 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and 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 <sys/types.h> -#include <string.h> - -/* - * Appends src to string dst of size dsize (unlike strncat, dsize is the - * full size of dst, not space left). At most dsize-1 characters - * will be copied. Always NUL terminates (unless dsize <= strlen(dst)). - * Returns strlen(src) + MIN(dsize, strlen(initial dst)). - * If retval >= dsize, truncation occurred. - */ -size_t -strlcat(char *dst, const char *src, size_t dsize) -{ - const char *odst = dst; - const char *osrc = src; - size_t n = dsize; - size_t dlen; - - /* Find the end of dst and adjust bytes left but don't go past end. */ - while (n-- != 0 && *dst != '\0') - dst++; - dlen = dst - odst; - n = dsize - dlen; - - if (n-- == 0) - return(dlen + strlen(src)); - while (*src != '\0') { - if (n != 0) { - *dst++ = *src; - n--; - } - src++; - } - *dst = '\0'; - - return(dlen + (src - osrc)); /* count does not include NUL */ -}
--- a/extern/libcompat/src/strlcpy.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* $OpenBSD: strlcpy.c,v 1.16 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1998, 2015 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and 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 <sys/types.h> -#include <string.h> - -/* - * Copy string src to buffer dst of size dsize. At most dsize-1 - * chars will be copied. Always NUL terminates (unless dsize == 0). - * Returns strlen(src); if retval >= dsize, truncation occurred. - */ -size_t -strlcpy(char *dst, const char *src, size_t dsize) -{ - const char *osrc = src; - size_t nleft = dsize; - - /* Copy as many bytes as will fit. */ - if (nleft != 0) { - while (--nleft != 0) { - if ((*dst++ = *src++) == '\0') - break; - } - } - - /* Not enough room in dst, add NUL and traverse rest of src. */ - if (nleft == 0) { - if (dsize != 0) - *dst = '\0'; /* NUL-terminate dst */ - while (*src++) - ; - } - - return(src - osrc - 1); /* count does not include NUL */ -}
--- a/extern/libcompat/src/strndup.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * strndup.c -- strndup implementation - * - * 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. - */ - -#include <assert.h> -#include <stdlib.h> -#include <string.h> - -/* Requires strnlen. */ -#include "compat.h" - -char * -strndup(const char *src, size_t max) -{ - assert(src); - - char *ret; - size_t length; - - length = strnlen(src, max); - - if (!(ret = malloc(length + 1))) - return NULL; - - ret[length] = '\0'; - - return memcpy(ret, src, length); -}
--- a/extern/libcompat/src/strnlen.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* $OpenBSD: strnlen.c,v 1.9 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 2010 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and 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 <stddef.h> - -size_t -strnlen(const char *str, size_t maxlen) -{ - const char *cp; - - for (cp = str; maxlen != 0 && *cp != '\0'; cp++, maxlen--) - ; - - return (size_t)(cp - str); -}
--- a/extern/libcompat/src/strsep.c Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* $OpenBSD: strsep.c,v 1.8 2015/08/31 02:53:57 guenther Exp $ */ - -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <string.h> - -/* - * Get next token from string *stringp, where tokens are possibly-empty - * strings separated by characters from delim. - * - * Writes NULs into the string at *stringp to end tokens. - * delim need not remain constant from call to call. - * On return, *stringp points past the last NUL written (if there might - * be further tokens), or is NULL (if there are definitely no more tokens). - * - * If *stringp is NULL, strsep returns NULL. - */ -char * -strsep(char **stringp, const char *delim) -{ - char *s; - const char *spanp; - int c, sc; - char *tok; - - if ((s = *stringp) == NULL) - return (NULL); - for (tok = s;;) { - c = *s++; - spanp = delim; - do { - if ((sc = *spanp++) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - *stringp = s; - return (tok); - } - } while (sc != 0); - } - /* NOTREACHED */ -}
--- a/extern/libcompat/win/dirent/dirent.h Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1027 +0,0 @@ -/* - * Dirent interface for Microsoft Visual Studio - * - * Copyright (C) 1998-2019 Toni Ronkko - * This file is part of dirent. Dirent may be freely distributed - * under the MIT license. For all details and documentation, see - * https://github.com/tronkko/dirent - */ -#ifndef DIRENT_H -#define DIRENT_H - -/* Hide warnings about unreferenced local functions */ -#if defined(__clang__) -# pragma clang diagnostic ignored "-Wunused-function" -#elif defined(_MSC_VER) -# pragma warning(disable:4505) -#elif defined(__GNUC__) -# pragma GCC diagnostic ignored "-Wunused-function" -#endif - -/* - * Include windows.h without Windows Sockets 1.1 to prevent conflicts with - * Windows Sockets 2.0. - */ -#ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -#endif -#include <windows.h> - -#include <stdio.h> -#include <stdarg.h> -#include <wchar.h> -#include <string.h> -#include <stdlib.h> -#include <malloc.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <errno.h> -#include <ctype.h> - -/* Indicates that d_type field is available in dirent structure */ -#define _DIRENT_HAVE_D_TYPE - -/* Indicates that d_namlen field is available in dirent structure */ -#define _DIRENT_HAVE_D_NAMLEN - -/* Entries missing from MSVC 6.0 */ -#if !defined(FILE_ATTRIBUTE_DEVICE) -# define FILE_ATTRIBUTE_DEVICE 0x40 -#endif - -/* File type and permission flags for stat(), general mask */ -#if !defined(S_IFMT) -# define S_IFMT _S_IFMT -#endif - -/* Directory bit */ -#if !defined(S_IFDIR) -# define S_IFDIR _S_IFDIR -#endif - -/* Character device bit */ -#if !defined(S_IFCHR) -# define S_IFCHR _S_IFCHR -#endif - -/* Pipe bit */ -#if !defined(S_IFFIFO) -# define S_IFFIFO _S_IFFIFO -#endif - -/* Regular file bit */ -#if !defined(S_IFREG) -# define S_IFREG _S_IFREG -#endif - -/* Read permission */ -#if !defined(S_IREAD) -# define S_IREAD _S_IREAD -#endif - -/* Write permission */ -#if !defined(S_IWRITE) -# define S_IWRITE _S_IWRITE -#endif - -/* Execute permission */ -#if !defined(S_IEXEC) -# define S_IEXEC _S_IEXEC -#endif - -/* Pipe */ -#if !defined(S_IFIFO) -# define S_IFIFO _S_IFIFO -#endif - -/* Block device */ -#if !defined(S_IFBLK) -# define S_IFBLK 0 -#endif - -/* Link */ -#if !defined(S_IFLNK) -# define S_IFLNK 0 -#endif - -/* Socket */ -#if !defined(S_IFSOCK) -# define S_IFSOCK 0 -#endif - -/* Read user permission */ -#if !defined(S_IRUSR) -# define S_IRUSR S_IREAD -#endif - -/* Write user permission */ -#if !defined(S_IWUSR) -# define S_IWUSR S_IWRITE -#endif - -/* Execute user permission */ -#if !defined(S_IXUSR) -# define S_IXUSR 0 -#endif - -/* Read group permission */ -#if !defined(S_IRGRP) -# define S_IRGRP 0 -#endif - -/* Write group permission */ -#if !defined(S_IWGRP) -# define S_IWGRP 0 -#endif - -/* Execute group permission */ -#if !defined(S_IXGRP) -# define S_IXGRP 0 -#endif - -/* Read others permission */ -#if !defined(S_IROTH) -# define S_IROTH 0 -#endif - -/* Write others permission */ -#if !defined(S_IWOTH) -# define S_IWOTH 0 -#endif - -/* Execute others permission */ -#if !defined(S_IXOTH) -# define S_IXOTH 0 -#endif - -/* Maximum length of file name */ -#if !defined(PATH_MAX) -# define PATH_MAX MAX_PATH -#endif -#if !defined(FILENAME_MAX) -# define FILENAME_MAX MAX_PATH -#endif -#if !defined(NAME_MAX) -# define NAME_MAX FILENAME_MAX -#endif - -/* File type flags for d_type */ -#define DT_UNKNOWN 0 -#define DT_REG S_IFREG -#define DT_DIR S_IFDIR -#define DT_FIFO S_IFIFO -#define DT_SOCK S_IFSOCK -#define DT_CHR S_IFCHR -#define DT_BLK S_IFBLK -#define DT_LNK S_IFLNK - -/* Macros for converting between st_mode and d_type */ -#define IFTODT(mode) ((mode) & S_IFMT) -#define DTTOIF(type) (type) - -/* - * File type macros. Note that block devices, sockets and links cannot be - * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are - * only defined for compatibility. These macros should always return false - * on Windows. - */ -#if !defined(S_ISFIFO) -# define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO) -#endif -#if !defined(S_ISDIR) -# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#endif -#if !defined(S_ISREG) -# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) -#endif -#if !defined(S_ISLNK) -# define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) -#endif -#if !defined(S_ISSOCK) -# define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) -#endif -#if !defined(S_ISCHR) -# define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) -#endif -#if !defined(S_ISBLK) -# define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) -#endif - -/* Return the exact length of the file name without zero terminator */ -#define _D_EXACT_NAMLEN(p) ((p)->d_namlen) - -/* Return the maximum size of a file name */ -#define _D_ALLOC_NAMLEN(p) ((PATH_MAX)+1) - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Wide-character version */ -struct _wdirent { - /* Always zero */ - long d_ino; - - /* File position within stream */ - long d_off; - - /* Structure size */ - unsigned short d_reclen; - - /* Length of name without \0 */ - size_t d_namlen; - - /* File type */ - int d_type; - - /* File name */ - wchar_t d_name[PATH_MAX+1]; -}; -typedef struct _wdirent _wdirent; - -struct _WDIR { - /* Current directory entry */ - struct _wdirent ent; - - /* Private file data */ - WIN32_FIND_DATAW data; - - /* True if data is valid */ - int cached; - - /* Win32 search handle */ - HANDLE handle; - - /* Initial directory name */ - wchar_t *patt; -}; -typedef struct _WDIR _WDIR; - -/* Multi-byte character version */ -struct dirent { - /* Always zero */ - long d_ino; - - /* File position within stream */ - long d_off; - - /* Structure size */ - unsigned short d_reclen; - - /* Length of name without \0 */ - size_t d_namlen; - - /* File type */ - int d_type; - - /* File name */ - char d_name[PATH_MAX+1]; -}; -typedef struct dirent dirent; - -struct DIR { - struct dirent ent; - struct _WDIR *wdirp; -}; -typedef struct DIR DIR; - - -/* Dirent functions */ -static DIR *opendir(const char *dirname); -static _WDIR *_wopendir(const wchar_t *dirname); - -static struct dirent *readdir(DIR *dirp); -static struct _wdirent *_wreaddir(_WDIR *dirp); - -static int readdir_r( - DIR *dirp, struct dirent *entry, struct dirent **result); -static int _wreaddir_r( - _WDIR *dirp, struct _wdirent *entry, struct _wdirent **result); - -static int closedir(DIR *dirp); -static int _wclosedir(_WDIR *dirp); - -static void rewinddir(DIR* dirp); -static void _wrewinddir(_WDIR* dirp); - -static int scandir(const char *dirname, struct dirent ***namelist, - int (*filter)(const struct dirent*), - int (*compare)(const struct dirent**, const struct dirent**)); - -static int alphasort(const struct dirent **a, const struct dirent **b); - -static int versionsort(const struct dirent **a, const struct dirent **b); - -static int strverscmp(const char *a, const char *b); - -/* For compatibility with Symbian */ -#define wdirent _wdirent -#define WDIR _WDIR -#define wopendir _wopendir -#define wreaddir _wreaddir -#define wclosedir _wclosedir -#define wrewinddir _wrewinddir - -/* Compatibility with older Microsoft compilers and non-Microsoft compilers */ -#if !defined(_MSC_VER) || _MSC_VER < 1400 -# define wcstombs_s dirent_wcstombs_s -# define mbstowcs_s dirent_mbstowcs_s -#endif - -/* Optimize dirent_set_errno() away on modern Microsoft compilers */ -#if defined(_MSC_VER) && _MSC_VER >= 1400 -# define dirent_set_errno _set_errno -#endif - - -/* Internal utility functions */ -static WIN32_FIND_DATAW *dirent_first(_WDIR *dirp); -static WIN32_FIND_DATAW *dirent_next(_WDIR *dirp); - -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static int dirent_mbstowcs_s( - size_t *pReturnValue, wchar_t *wcstr, size_t sizeInWords, - const char *mbstr, size_t count); -#endif - -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static int dirent_wcstombs_s( - size_t *pReturnValue, char *mbstr, size_t sizeInBytes, - const wchar_t *wcstr, size_t count); -#endif - -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static void dirent_set_errno(int error); -#endif - - -/* - * Open directory stream DIRNAME for read and return a pointer to the - * internal working area that is used to retrieve individual directory - * entries. - */ -static _WDIR *_wopendir(const wchar_t *dirname) -{ - wchar_t *p; - - /* Must have directory name */ - if (dirname == NULL || dirname[0] == '\0') { - dirent_set_errno(ENOENT); - return NULL; - } - - /* Allocate new _WDIR structure */ - _WDIR *dirp = (_WDIR*) malloc(sizeof(struct _WDIR)); - if (!dirp) - return NULL; - - /* Reset _WDIR structure */ - dirp->handle = INVALID_HANDLE_VALUE; - dirp->patt = NULL; - dirp->cached = 0; - - /* - * Compute the length of full path plus zero terminator - * - * Note that on WinRT there's no way to convert relative paths - * into absolute paths, so just assume it is an absolute path. - */ -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - /* Desktop */ - DWORD n = GetFullPathNameW(dirname, 0, NULL, NULL); -#else - /* WinRT */ - size_t n = wcslen(dirname); -#endif - - /* Allocate room for absolute directory name and search pattern */ - dirp->patt = (wchar_t*) malloc(sizeof(wchar_t) * n + 16); - if (dirp->patt == NULL) - goto exit_closedir; - - /* - * Convert relative directory name to an absolute one. This - * allows rewinddir() to function correctly even when current - * working directory is changed between opendir() and rewinddir(). - * - * Note that on WinRT there's no way to convert relative paths - * into absolute paths, so just assume it is an absolute path. - */ -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - /* Desktop */ - n = GetFullPathNameW(dirname, n, dirp->patt, NULL); - if (n <= 0) - goto exit_closedir; -#else - /* WinRT */ - wcsncpy_s(dirp->patt, n+1, dirname, n); -#endif - - /* Append search pattern \* to the directory name */ - p = dirp->patt + n; - switch (p[-1]) { - case '\\': - case '/': - case ':': - /* Directory ends in path separator, e.g. c:\temp\ */ - /*NOP*/; - break; - - default: - /* Directory name doesn't end in path separator */ - *p++ = '\\'; - } - *p++ = '*'; - *p = '\0'; - - /* Open directory stream and retrieve the first entry */ - if (!dirent_first(dirp)) - goto exit_closedir; - - /* Success */ - return dirp; - - /* Failure */ -exit_closedir: - _wclosedir(dirp); - return NULL; -} - -/* - * Read next directory entry. - * - * Returns pointer to static directory entry which may be overwritten by - * subsequent calls to _wreaddir(). - */ -static struct _wdirent *_wreaddir(_WDIR *dirp) -{ - /* - * Read directory entry to buffer. We can safely ignore the return - * value as entry will be set to NULL in case of error. - */ - struct _wdirent *entry; - (void) _wreaddir_r(dirp, &dirp->ent, &entry); - - /* Return pointer to statically allocated directory entry */ - return entry; -} - -/* - * Read next directory entry. - * - * Returns zero on success. If end of directory stream is reached, then sets - * result to NULL and returns zero. - */ -static int _wreaddir_r( - _WDIR *dirp, struct _wdirent *entry, struct _wdirent **result) -{ - /* Read next directory entry */ - WIN32_FIND_DATAW *datap = dirent_next(dirp); - if (!datap) { - /* Return NULL to indicate end of directory */ - *result = NULL; - return /*OK*/0; - } - - /* - * Copy file name as wide-character string. If the file name is too - * long to fit in to the destination buffer, then truncate file name - * to PATH_MAX characters and zero-terminate the buffer. - */ - size_t n = 0; - while (n < PATH_MAX && datap->cFileName[n] != 0) { - entry->d_name[n] = datap->cFileName[n]; - n++; - } - entry->d_name[n] = 0; - - /* Length of file name excluding zero terminator */ - entry->d_namlen = n; - - /* File type */ - DWORD attr = datap->dwFileAttributes; - if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) - entry->d_type = DT_CHR; - else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) - entry->d_type = DT_DIR; - else - entry->d_type = DT_REG; - - /* Reset dummy fields */ - entry->d_ino = 0; - entry->d_off = 0; - entry->d_reclen = sizeof(struct _wdirent); - - /* Set result address */ - *result = entry; - return /*OK*/0; -} - -/* - * Close directory stream opened by opendir() function. This invalidates the - * DIR structure as well as any directory entry read previously by - * _wreaddir(). - */ -static int _wclosedir(_WDIR *dirp) -{ - if (!dirp) { - dirent_set_errno(EBADF); - return /*failure*/-1; - } - - /* Release search handle */ - if (dirp->handle != INVALID_HANDLE_VALUE) - FindClose(dirp->handle); - - /* Release search pattern */ - free(dirp->patt); - - /* Release directory structure */ - free(dirp); - return /*success*/0; -} - -/* - * Rewind directory stream such that _wreaddir() returns the very first - * file name again. - */ -static void _wrewinddir(_WDIR* dirp) -{ - if (!dirp) - return; - - /* Release existing search handle */ - if (dirp->handle != INVALID_HANDLE_VALUE) - FindClose(dirp->handle); - - /* Open new search handle */ - dirent_first(dirp); -} - -/* Get first directory entry */ -static WIN32_FIND_DATAW *dirent_first(_WDIR *dirp) -{ - if (!dirp) - return NULL; - - /* Open directory and retrieve the first entry */ - dirp->handle = FindFirstFileExW( - dirp->patt, FindExInfoStandard, &dirp->data, - FindExSearchNameMatch, NULL, 0); - if (dirp->handle == INVALID_HANDLE_VALUE) - goto error; - - /* A directory entry is now waiting in memory */ - dirp->cached = 1; - return &dirp->data; - -error: - /* Failed to open directory: no directory entry in memory */ - dirp->cached = 0; - - /* Set error code */ - DWORD errorcode = GetLastError(); - switch (errorcode) { - case ERROR_ACCESS_DENIED: - /* No read access to directory */ - dirent_set_errno(EACCES); - break; - - case ERROR_DIRECTORY: - /* Directory name is invalid */ - dirent_set_errno(ENOTDIR); - break; - - case ERROR_PATH_NOT_FOUND: - default: - /* Cannot find the file */ - dirent_set_errno(ENOENT); - } - return NULL; -} - -/* Get next directory entry */ -static WIN32_FIND_DATAW *dirent_next(_WDIR *dirp) -{ - /* Is the next directory entry already in cache? */ - if (dirp->cached) { - /* Yes, a valid directory entry found in memory */ - dirp->cached = 0; - return &dirp->data; - } - - /* No directory entry in cache */ - if (dirp->handle == INVALID_HANDLE_VALUE) - return NULL; - - /* Read the next directory entry from stream */ - if (FindNextFileW(dirp->handle, &dirp->data) == FALSE) - goto exit_close; - - /* Success */ - return &dirp->data; - - /* Failure */ -exit_close: - FindClose(dirp->handle); - dirp->handle = INVALID_HANDLE_VALUE; - return NULL; -} - -/* Open directory stream using plain old C-string */ -static DIR *opendir(const char *dirname) -{ - /* Must have directory name */ - if (dirname == NULL || dirname[0] == '\0') { - dirent_set_errno(ENOENT); - return NULL; - } - - /* Allocate memory for DIR structure */ - struct DIR *dirp = (DIR*) malloc(sizeof(struct DIR)); - if (!dirp) - return NULL; - - /* Convert directory name to wide-character string */ - wchar_t wname[PATH_MAX + 1]; - size_t n; - int error = mbstowcs_s(&n, wname, PATH_MAX + 1, dirname, PATH_MAX+1); - if (error) - goto exit_failure; - - /* Open directory stream using wide-character name */ - dirp->wdirp = _wopendir(wname); - if (!dirp->wdirp) - goto exit_failure; - - /* Success */ - return dirp; - - /* Failure */ -exit_failure: - free(dirp); - return NULL; -} - -/* Read next directory entry */ -static struct dirent *readdir(DIR *dirp) -{ - /* - * Read directory entry to buffer. We can safely ignore the return - * value as entry will be set to NULL in case of error. - */ - struct dirent *entry; - (void) readdir_r(dirp, &dirp->ent, &entry); - - /* Return pointer to statically allocated directory entry */ - return entry; -} - -/* - * Read next directory entry into called-allocated buffer. - * - * Returns zero on success. If the end of directory stream is reached, then - * sets result to NULL and returns zero. - */ -static int readdir_r( - DIR *dirp, struct dirent *entry, struct dirent **result) -{ - /* Read next directory entry */ - WIN32_FIND_DATAW *datap = dirent_next(dirp->wdirp); - if (!datap) { - /* No more directory entries */ - *result = NULL; - return /*OK*/0; - } - - /* Attempt to convert file name to multi-byte string */ - size_t n; - int error = wcstombs_s( - &n, entry->d_name, PATH_MAX + 1, - datap->cFileName, PATH_MAX + 1); - - /* - * If the file name cannot be represented by a multi-byte string, then - * attempt to use old 8+3 file name. This allows the program to - * access files although file names may seem unfamiliar to the user. - * - * Be ware that the code below cannot come up with a short file name - * unless the file system provides one. At least VirtualBox shared - * folders fail to do this. - */ - if (error && datap->cAlternateFileName[0] != '\0') { - error = wcstombs_s( - &n, entry->d_name, PATH_MAX + 1, - datap->cAlternateFileName, PATH_MAX + 1); - } - - if (!error) { - /* Length of file name excluding zero terminator */ - entry->d_namlen = n - 1; - - /* File attributes */ - DWORD attr = datap->dwFileAttributes; - if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) - entry->d_type = DT_CHR; - else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) - entry->d_type = DT_DIR; - else - entry->d_type = DT_REG; - - /* Reset dummy fields */ - entry->d_ino = 0; - entry->d_off = 0; - entry->d_reclen = sizeof(struct dirent); - } else { - /* - * Cannot convert file name to multi-byte string so construct - * an erroneous directory entry and return that. Note that - * we cannot return NULL as that would stop the processing - * of directory entries completely. - */ - entry->d_name[0] = '?'; - entry->d_name[1] = '\0'; - entry->d_namlen = 1; - entry->d_type = DT_UNKNOWN; - entry->d_ino = 0; - entry->d_off = -1; - entry->d_reclen = 0; - } - - /* Return pointer to directory entry */ - *result = entry; - return /*OK*/0; -} - -/* Close directory stream */ -static int closedir(DIR *dirp) -{ - int ok; - - if (!dirp) - goto exit_failure; - - /* Close wide-character directory stream */ - ok = _wclosedir(dirp->wdirp); - dirp->wdirp = NULL; - - /* Release multi-byte character version */ - free(dirp); - return ok; - -exit_failure: - /* Invalid directory stream */ - dirent_set_errno(EBADF); - return /*failure*/-1; -} - -/* Rewind directory stream to beginning */ -static void rewinddir(DIR* dirp) -{ - if (!dirp) - return; - - /* Rewind wide-character string directory stream */ - _wrewinddir(dirp->wdirp); -} - -/* Scan directory for entries */ -static int scandir( - const char *dirname, struct dirent ***namelist, - int (*filter)(const struct dirent*), - int (*compare)(const struct dirent**, const struct dirent**)) -{ - int result; - - /* Open directory stream */ - DIR *dir = opendir(dirname); - if (!dir) { - /* Cannot open directory */ - return /*Error*/ -1; - } - - /* Read directory entries to memory */ - struct dirent *tmp = NULL; - struct dirent **files = NULL; - size_t size = 0; - size_t allocated = 0; - while (1) { - /* Allocate room for a temporary directory entry */ - if (!tmp) { - tmp = (struct dirent*) malloc(sizeof(struct dirent)); - if (!tmp) - goto exit_failure; - } - - /* Read directory entry to temporary area */ - struct dirent *entry; - if (readdir_r(dir, tmp, &entry) != /*OK*/0) - goto exit_failure; - - /* Stop if we already read the last directory entry */ - if (entry == NULL) - goto exit_success; - - /* Determine whether to include the entry in results */ - if (filter && !filter(tmp)) - continue; - - /* Enlarge pointer table to make room for another pointer */ - if (size >= allocated) { - /* Compute number of entries in the new table */ - size_t num_entries = size * 2 + 16; - - /* Allocate new pointer table or enlarge existing */ - void *p = realloc(files, sizeof(void*) * num_entries); - if (!p) - goto exit_failure; - - /* Got the memory */ - files = (dirent**) p; - allocated = num_entries; - } - - /* Store the temporary entry to ptr table */ - files[size++] = tmp; - tmp = NULL; - } - -exit_failure: - /* Release allocated file entries */ - for (size_t i = 0; i < size; i++) { - free(files[i]); - } - - /* Release the pointer table */ - free(files); - files = NULL; - - /* Exit with error code */ - result = /*error*/ -1; - goto exit_status; - -exit_success: - /* Sort directory entries */ - qsort(files, size, sizeof(void*), - (int (*) (const void*, const void*)) compare); - - /* Pass pointer table to caller */ - if (namelist) - *namelist = files; - - /* Return the number of directory entries read */ - result = (int) size; - -exit_status: - /* Release temporary directory entry, if we had one */ - free(tmp); - - /* Close directory stream */ - closedir(dir); - return result; -} - -/* Alphabetical sorting */ -static int alphasort(const struct dirent **a, const struct dirent **b) -{ - return strcoll((*a)->d_name, (*b)->d_name); -} - -/* Sort versions */ -static int versionsort(const struct dirent **a, const struct dirent **b) -{ - return strverscmp((*a)->d_name, (*b)->d_name); -} - -/* Compare strings */ -static int strverscmp(const char *a, const char *b) -{ - size_t i = 0; - size_t j; - - /* Find first difference */ - while (a[i] == b[i]) { - if (a[i] == '\0') { - /* No difference */ - return 0; - } - ++i; - } - - /* Count backwards and find the leftmost digit */ - j = i; - while (j > 0 && isdigit(a[j-1])) { - --j; - } - - /* Determine mode of comparison */ - if (a[j] == '0' || b[j] == '0') { - /* Find the next non-zero digit */ - while (a[j] == '0' && a[j] == b[j]) { - j++; - } - - /* String with more digits is smaller, e.g 002 < 01 */ - if (isdigit(a[j])) { - if (!isdigit(b[j])) { - return -1; - } - } else if (isdigit(b[j])) { - return 1; - } - } else if (isdigit(a[j]) && isdigit(b[j])) { - /* Numeric comparison */ - size_t k1 = j; - size_t k2 = j; - - /* Compute number of digits in each string */ - while (isdigit(a[k1])) { - k1++; - } - while (isdigit(b[k2])) { - k2++; - } - - /* Number with more digits is bigger, e.g 999 < 1000 */ - if (k1 < k2) - return -1; - else if (k1 > k2) - return 1; - } - - /* Alphabetical comparison */ - return (int) ((unsigned char) a[i]) - ((unsigned char) b[i]); -} - -/* Convert multi-byte string to wide character string */ -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static int dirent_mbstowcs_s( - size_t *pReturnValue, wchar_t *wcstr, - size_t sizeInWords, const char *mbstr, size_t count) -{ - /* Older Visual Studio or non-Microsoft compiler */ - size_t n = mbstowcs(wcstr, mbstr, sizeInWords); - if (wcstr && n >= count) - return /*error*/ 1; - - /* Zero-terminate output buffer */ - if (wcstr && sizeInWords) { - if (n >= sizeInWords) - n = sizeInWords - 1; - wcstr[n] = 0; - } - - /* Length of multi-byte string with zero terminator */ - if (pReturnValue) { - *pReturnValue = n + 1; - } - - /* Success */ - return 0; -} -#endif - -/* Convert wide-character string to multi-byte string */ -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static int dirent_wcstombs_s( - size_t *pReturnValue, char *mbstr, - size_t sizeInBytes, const wchar_t *wcstr, size_t count) -{ - /* Older Visual Studio or non-Microsoft compiler */ - size_t n = wcstombs(mbstr, wcstr, sizeInBytes); - if (mbstr && n >= count) - return /*error*/1; - - /* Zero-terminate output buffer */ - if (mbstr && sizeInBytes) { - if (n >= sizeInBytes) { - n = sizeInBytes - 1; - } - mbstr[n] = '\0'; - } - - /* Length of resulting multi-bytes string WITH zero-terminator */ - if (pReturnValue) { - *pReturnValue = n + 1; - } - - /* Success */ - return 0; -} -#endif - -/* Set errno variable */ -#if !defined(_MSC_VER) || _MSC_VER < 1400 -static void dirent_set_errno(int error) -{ - /* Non-Microsoft compiler or older Microsoft compiler */ - errno = error; -} -#endif - -#ifdef __cplusplus -} -#endif -#endif /*DIRENT_H*/
--- a/extern/libgreatest/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libgreatest -# -# 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. -# - -project(libgreatest) - -molko_define_library( - TARGET libgreatest - TYPE INTERFACE - SOURCES greatest.h - FOLDER extern - EXTERNAL - INCLUDES INTERFACE $<BUILD_INTERFACE:${libgreatest_SOURCE_DIR}> -)
--- a/extern/libsqlite/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libsqlite -# -# 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. -# - -project(libsqlite) - -molko_define_library( - TARGET libsqlite - SOURCES sqlite3.c sqlite3.h - EXTERNAL - FOLDER extern - FLAGS - PRIVATE - SQLITE_THREADSAFE=0 - SQLITE_DEFAULT_MEMSTATUS=0 - SQLITE_DEFAULT_FOREIGN_KEYS=1 - SQLITE_OMIT_DEPRECATED - SQLITE_OMIT_LOAD_EXTENSION - $<$<CONFIG:Debug>:SQLITE_DEBUG> - $<$<CONFIG:Debug>:SQLITE_MEMDEBUG> - INCLUDES - PUBLIC - $<BUILD_INTERFACE:${libsqlite_SOURCE_DIR}> - $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> -)
--- a/libmlk-adventure/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libadventure -# -# 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. -# - -project(libadventure) - -set( - SOURCES - ${libadventure_SOURCE_DIR}/adventure/action/chest.c - ${libadventure_SOURCE_DIR}/adventure/action/chest.h - ${libadventure_SOURCE_DIR}/adventure/action/spawner.c - ${libadventure_SOURCE_DIR}/adventure/action/spawner.h - ${libadventure_SOURCE_DIR}/adventure/action/teleport.c - ${libadventure_SOURCE_DIR}/adventure/action/teleport.h - ${libadventure_SOURCE_DIR}/adventure/adventure_p.h - ${libadventure_SOURCE_DIR}/adventure/assets.c - ${libadventure_SOURCE_DIR}/adventure/assets.h - ${libadventure_SOURCE_DIR}/adventure/character/black-cat.c - ${libadventure_SOURCE_DIR}/adventure/character/black-cat.h - ${libadventure_SOURCE_DIR}/adventure/character/neth.c - ${libadventure_SOURCE_DIR}/adventure/character/neth.h - ${libadventure_SOURCE_DIR}/adventure/dialog/save.c - ${libadventure_SOURCE_DIR}/adventure/dialog/save.h - ${libadventure_SOURCE_DIR}/adventure/item/potion.c - ${libadventure_SOURCE_DIR}/adventure/item/potion.h - ${libadventure_SOURCE_DIR}/adventure/mapscene/mapscene.c - ${libadventure_SOURCE_DIR}/adventure/mapscene/mapscene.h - ${libadventure_SOURCE_DIR}/adventure/molko.c - ${libadventure_SOURCE_DIR}/adventure/molko.h - ${libadventure_SOURCE_DIR}/adventure/spell/fire-minor.c - ${libadventure_SOURCE_DIR}/adventure/spell/fire-minor.h - ${libadventure_SOURCE_DIR}/adventure/state/battle.c - ${libadventure_SOURCE_DIR}/adventure/state/battle.h - ${libadventure_SOURCE_DIR}/adventure/state/continue.c - ${libadventure_SOURCE_DIR}/adventure/state/continue.h - ${libadventure_SOURCE_DIR}/adventure/state/mainmenu.c - ${libadventure_SOURCE_DIR}/adventure/state/mainmenu.h - ${libadventure_SOURCE_DIR}/adventure/state/map.c - ${libadventure_SOURCE_DIR}/adventure/state/map.h - ${libadventure_SOURCE_DIR}/adventure/state/panic.c - ${libadventure_SOURCE_DIR}/adventure/state/panic.h - ${libadventure_SOURCE_DIR}/adventure/state/splashscreen.c - ${libadventure_SOURCE_DIR}/adventure/state/splashscreen.h - ${libadventure_SOURCE_DIR}/adventure/trace_hud.c - ${libadventure_SOURCE_DIR}/adventure/trace_hud.h -) - -set( - PO - ${libadventure_SOURCE_DIR}/nls/fr.po - ${libadventure_SOURCE_DIR}/nls/libmlk-adventure.pot -) - -molko_define_library( - TARGET libmlk-adventure - TRANSLATIONS fr - SOURCES ${SOURCES} ${PO} - LIBRARIES PUBLIC libmlk-core libmlk-ui libmlk-rpg libmlk-data - INCLUDES PUBLIC $<BUILD_INTERFACE:${libadventure_SOURCE_DIR}> -) - -source_group(TREE ${libadventure_SOURCE_DIR} FILES ${PO} ${SOURCES})
--- a/libmlk-adventure/adventure/action/teleport.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-adventure/adventure/action/teleport.c Wed Jun 23 22:41:34 2021 +0200 @@ -16,8 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <compat.h> - #include <assert.h> #include <stdio.h> #include <stdlib.h>
--- a/libmlk-adventure/adventure/adventure_p.h Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-adventure/adventure/adventure_p.h Wed Jun 23 22:41:34 2021 +0200 @@ -19,7 +19,7 @@ #ifndef MOLKO_ADVENTURE_ADVENTURE_P_H #define MOLKO_ADVENTURE_ADVENTURE_P_H -#include "sysconfig.h" +#include "config.h" #if defined(MOLKO_WITH_NLS) # include <libintl.h>
--- a/libmlk-adventure/adventure/dialog/save.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-adventure/adventure/dialog/save.c Wed Jun 23 22:41:34 2021 +0200 @@ -20,8 +20,6 @@ #include <stdio.h> #include <string.h> -#include <compat.h> - #include <core/event.h> #include <core/font.h> #include <core/maths.h>
--- a/libmlk-adventure/adventure/state/map.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-adventure/adventure/state/map.c Wed Jun 23 22:41:34 2021 +0200 @@ -16,8 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <compat.h> - #include <assert.h> #include <stdlib.h> #include <stdio.h>
--- a/libmlk-core/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libmlk-core -# -# 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. -# - -project(libmlk-core) - -set( - PO - ${libmlk-core_SOURCE_DIR}/nls/fr.po - ${libmlk-core_SOURCE_DIR}/nls/libmlk-core.pot -) - -set( - SOURCES - ${libmlk-core_SOURCE_DIR}/core/action.c - ${libmlk-core_SOURCE_DIR}/core/action.h - ${libmlk-core_SOURCE_DIR}/core/alloc.c - ${libmlk-core_SOURCE_DIR}/core/alloc.h - ${libmlk-core_SOURCE_DIR}/core/animation.c - ${libmlk-core_SOURCE_DIR}/core/animation.h - ${libmlk-core_SOURCE_DIR}/core/clock.c - ${libmlk-core_SOURCE_DIR}/core/clock.h - ${libmlk-core_SOURCE_DIR}/core/color.h - ${libmlk-core_SOURCE_DIR}/core/core.c - ${libmlk-core_SOURCE_DIR}/core/core.h - ${libmlk-core_SOURCE_DIR}/core/core_p.h - ${libmlk-core_SOURCE_DIR}/core/drawable.c - ${libmlk-core_SOURCE_DIR}/core/drawable.h - ${libmlk-core_SOURCE_DIR}/core/error.c - ${libmlk-core_SOURCE_DIR}/core/error.h - ${libmlk-core_SOURCE_DIR}/core/event.c - ${libmlk-core_SOURCE_DIR}/core/event.h - ${libmlk-core_SOURCE_DIR}/core/font.c - ${libmlk-core_SOURCE_DIR}/core/font.h - ${libmlk-core_SOURCE_DIR}/core/game.c - ${libmlk-core_SOURCE_DIR}/core/game.h - ${libmlk-core_SOURCE_DIR}/core/image.c - ${libmlk-core_SOURCE_DIR}/core/image.h - ${libmlk-core_SOURCE_DIR}/core/inhibit.h - ${libmlk-core_SOURCE_DIR}/core/key.h - ${libmlk-core_SOURCE_DIR}/core/maths.c - ${libmlk-core_SOURCE_DIR}/core/maths.h - ${libmlk-core_SOURCE_DIR}/core/mouse.h - ${libmlk-core_SOURCE_DIR}/core/music.c - ${libmlk-core_SOURCE_DIR}/core/music.h - ${libmlk-core_SOURCE_DIR}/core/painter.c - ${libmlk-core_SOURCE_DIR}/core/painter.h - ${libmlk-core_SOURCE_DIR}/core/panic.c - ${libmlk-core_SOURCE_DIR}/core/panic.h - ${libmlk-core_SOURCE_DIR}/core/script.c - ${libmlk-core_SOURCE_DIR}/core/script.h - ${libmlk-core_SOURCE_DIR}/core/sound.c - ${libmlk-core_SOURCE_DIR}/core/sound.h - ${libmlk-core_SOURCE_DIR}/core/sprite.c - ${libmlk-core_SOURCE_DIR}/core/sprite.h - ${libmlk-core_SOURCE_DIR}/core/state.c - ${libmlk-core_SOURCE_DIR}/core/state.h - ${libmlk-core_SOURCE_DIR}/core/sys.c - ${libmlk-core_SOURCE_DIR}/core/sys.h - ${libmlk-core_SOURCE_DIR}/core/sysconfig.h.in - ${libmlk-core_SOURCE_DIR}/core/texture.c - ${libmlk-core_SOURCE_DIR}/core/texture.h - ${libmlk-core_SOURCE_DIR}/core/texture_p.h - ${libmlk-core_SOURCE_DIR}/core/trace.c - ${libmlk-core_SOURCE_DIR}/core/trace.h - ${libmlk-core_SOURCE_DIR}/core/translate.c - ${libmlk-core_SOURCE_DIR}/core/translate.h - ${libmlk-core_SOURCE_DIR}/core/util.c - ${libmlk-core_SOURCE_DIR}/core/util.h - ${libmlk-core_SOURCE_DIR}/core/window.c - ${libmlk-core_SOURCE_DIR}/core/window.h - ${libmlk-core_SOURCE_DIR}/core/window_p.h - ${libmlk-core_SOURCE_DIR}/core/zfile.c - ${libmlk-core_SOURCE_DIR}/core/zfile.h -) - -configure_file( - ${libmlk-core_SOURCE_DIR}/core/sysconfig.h.in - ${libmlk-core_BINARY_DIR}/sysconfig.h -) - -if (MOLKO_WITH_NLS AND Intl_FOUND) - list(APPEND LIBS ${Intl_LIBRARIES}) - list(APPEND INCS ${Intl_INCLUDE_DIRS}) -endif () - -molko_define_library( - TARGET libmlk-core - SOURCES ${SOURCES} ${ASSETS} ${PO} - TRANSLATIONS fr - LIBRARIES - PUBLIC - m - ${LIBS} - libcompat - libsqlite - SDL2::SDL2 - SDL2::image - SDL2::mixer - SDL2::ttf - INCLUDES - PUBLIC - ${INCS} - $<BUILD_INTERFACE:${libmlk-core_SOURCE_DIR}> - $<BUILD_INTERFACE:${libmlk-core_BINARY_DIR}> -) - -source_group(TREE ${libmlk-core_SOURCE_DIR} FILES ${ASSETS} ${PO} ${SOURCES})
--- a/libmlk-core/core/core_p.h Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-core/core/core_p.h Wed Jun 23 22:41:34 2021 +0200 @@ -19,7 +19,7 @@ #ifndef MOLKO_CORE_CORE_P_H #define MOLKO_CORE_CORE_P_H -#include "sysconfig.h" +#include "config.h" #if defined(MOLKO_WITH_NLS) # include <libintl.h>
--- a/libmlk-core/core/sys.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-core/core/sys.c Wed Jun 23 22:41:34 2021 +0200 @@ -16,7 +16,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include "sysconfig.h" +#include "config.h" #include <assert.h> #include <stdio.h>
--- a/libmlk-core/core/translate.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-core/core/translate.c Wed Jun 23 22:41:34 2021 +0200 @@ -18,7 +18,7 @@ #include <stdio.h> -#include "sysconfig.h" +#include "config.h" #if defined(MOLKO_WITH_NLS) # include <libintl.h>
--- a/libmlk-rpg/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libmlk-rpg -# -# 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. -# - -project(libmlk-rpg) - -set( - ASSETS - ${libmlk-rpg_SOURCE_DIR}/assets/sql/character-save.sql - ${libmlk-rpg_SOURCE_DIR}/assets/sql/init.sql - ${libmlk-rpg_SOURCE_DIR}/assets/sql/property-get.sql - ${libmlk-rpg_SOURCE_DIR}/assets/sql/property-remove.sql - ${libmlk-rpg_SOURCE_DIR}/assets/sql/property-set.sql - ${libmlk-rpg_SOURCE_DIR}/assets/sql/character-load.sql -) - -set( - SOURCES - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-bar.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-bar.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state-attacking.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state-blinking.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state-moving.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state-normal.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity-state.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-entity.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-indicator.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-indicator.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-message.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-message.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-ai.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-attacking.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-check.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-closing.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-item.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-lost.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-menu.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-opening.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-selection.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-sub.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state-victory.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle-state.h - ${libmlk-rpg_SOURCE_DIR}/rpg/battle.c - ${libmlk-rpg_SOURCE_DIR}/rpg/battle.h - ${libmlk-rpg_SOURCE_DIR}/rpg/character.c - ${libmlk-rpg_SOURCE_DIR}/rpg/character.h - ${libmlk-rpg_SOURCE_DIR}/rpg/equipment.c - ${libmlk-rpg_SOURCE_DIR}/rpg/equipment.h - ${libmlk-rpg_SOURCE_DIR}/rpg/inventory.c - ${libmlk-rpg_SOURCE_DIR}/rpg/inventory.h - ${libmlk-rpg_SOURCE_DIR}/rpg/item.c - ${libmlk-rpg_SOURCE_DIR}/rpg/item.h - ${libmlk-rpg_SOURCE_DIR}/rpg/map-file.c - ${libmlk-rpg_SOURCE_DIR}/rpg/map-file.h - ${libmlk-rpg_SOURCE_DIR}/rpg/map.c - ${libmlk-rpg_SOURCE_DIR}/rpg/map.h - ${libmlk-rpg_SOURCE_DIR}/rpg/message.c - ${libmlk-rpg_SOURCE_DIR}/rpg/message.h - ${libmlk-rpg_SOURCE_DIR}/rpg/rpg.c - ${libmlk-rpg_SOURCE_DIR}/rpg/rpg.h - ${libmlk-rpg_SOURCE_DIR}/rpg/rpg_p.h - ${libmlk-rpg_SOURCE_DIR}/rpg/save.c - ${libmlk-rpg_SOURCE_DIR}/rpg/save.h - ${libmlk-rpg_SOURCE_DIR}/rpg/selection.c - ${libmlk-rpg_SOURCE_DIR}/rpg/selection.h - ${libmlk-rpg_SOURCE_DIR}/rpg/spell.c - ${libmlk-rpg_SOURCE_DIR}/rpg/spell.h - ${libmlk-rpg_SOURCE_DIR}/rpg/team.c - ${libmlk-rpg_SOURCE_DIR}/rpg/team.h - ${libmlk-rpg_SOURCE_DIR}/rpg/tileset-file.c - ${libmlk-rpg_SOURCE_DIR}/rpg/tileset-file.h - ${libmlk-rpg_SOURCE_DIR}/rpg/tileset.c - ${libmlk-rpg_SOURCE_DIR}/rpg/tileset.h - ${libmlk-rpg_SOURCE_DIR}/rpg/walksprite.c - ${libmlk-rpg_SOURCE_DIR}/rpg/walksprite.h -) - -set( - PO - ${libmlk-rpg_SOURCE_DIR}/nls/fr.po - ${libmlk-rpg_SOURCE_DIR}/nls/libmlk-rpg.pot -) - -molko_define_library( - TARGET libmlk-rpg - ASSETS ${ASSETS} - TRANSLATIONS fr - SOURCES ${SOURCES} ${PO} ${ASSETS} - LIBRARIES - PUBLIC - ZSTD::ZSTD - libmlk-core - libmlk-ui - INCLUDES - PUBLIC - $<BUILD_INTERFACE:${libmlk-rpg_SOURCE_DIR}> - $<BUILD_INTERFACE:${libmlk-rpg_BINARY_DIR}> -) - -source_group(TREE ${libmlk-rpg_SOURCE_DIR} FILES ${ASSETS} ${PO} ${SOURCES})
--- a/libmlk-rpg/rpg/character.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-rpg/rpg/character.c Wed Jun 23 22:41:34 2021 +0200 @@ -76,7 +76,7 @@ assert(ch); assert(save_ok(s)); - return save_exec(s, (const char *)sql_character_save, "s iii i iiiiii", + return save_exec(s, (const char *)assets_character_save, "s iii i iiiiii", ch->name, ch->hp, ch->mp, @@ -100,7 +100,7 @@ struct save_stmt stmt; int ret; - if (save_stmt_init(s, &stmt, (const char *)sql_character_load, "s", ch->name) < 0) + if (save_stmt_init(s, &stmt, (const char *)assets_character_load, "s", ch->name) < 0) return -1; ret = save_stmt_next(&stmt, "iii i iiiiii",
--- a/libmlk-rpg/rpg/rpg_p.h Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-rpg/rpg/rpg_p.h Wed Jun 23 22:41:34 2021 +0200 @@ -19,7 +19,7 @@ #ifndef MOLKO_RPG_RPG_P_H #define MOLKO_RPG_RPG_P_H -#include "sysconfig.h" +#include "config.h" #if defined(MOLKO_WITH_NLS) # include <libintl.h>
--- a/libmlk-rpg/rpg/save.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-rpg/rpg/save.c Wed Jun 23 22:41:34 2021 +0200 @@ -16,8 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <compat.h> - #include <assert.h> #include <stdio.h> #include <stdlib.h> @@ -189,7 +187,7 @@ if (sqlite3_open_v2(path, (sqlite3**)&db->handle, flags, NULL) != SQLITE_OK) goto sqlite3_err; - if (mode == SAVE_MODE_WRITE && execu(db, sql_init) < 0) + if (mode == SAVE_MODE_WRITE && execu(db, assets_init) < 0) goto sqlite3_err; return verify(db); @@ -221,7 +219,7 @@ if (exec(db, SQL_BEGIN) < 0) return -1; - if (sqlite3_prepare(db->handle, (const char *)sql_property_set, -1, &stmt, NULL) != SQLITE_OK) + if (sqlite3_prepare(db->handle, (const char *)assets_property_set, -1, &stmt, NULL) != SQLITE_OK) goto sqlite3_err; if (sqlite3_bind_text(stmt, 1, prop->key, -1, NULL) != SQLITE_OK || sqlite3_bind_text(stmt, 2, prop->value, -1, NULL) != SQLITE_OK) @@ -253,8 +251,8 @@ sqlite3_stmt *stmt = NULL; int ret = 0; - if (sqlite3_prepare(db->handle, (const char *)sql_property_get, - sizeof (sql_property_get), &stmt, NULL) != SQLITE_OK) + if (sqlite3_prepare(db->handle, (const char *)assets_property_get, + sizeof (assets_property_get), &stmt, NULL) != SQLITE_OK) goto sqlite3_err; if (sqlite3_bind_text(stmt, 1, prop->key, -1, NULL) != SQLITE_OK) goto sqlite3_err; @@ -297,8 +295,8 @@ if (exec(db, SQL_BEGIN) < 0) return -1; - if (sqlite3_prepare(db->handle, (const char *)sql_property_remove, - sizeof (sql_property_remove), &stmt, NULL) != SQLITE_OK) + if (sqlite3_prepare(db->handle, (const char *)assets_property_remove, + sizeof (assets_property_remove), &stmt, NULL) != SQLITE_OK) goto sqlite3_err; if (sqlite3_bind_text(stmt, 1, prop->key, -1, NULL) != SQLITE_OK) goto sqlite3_err;
--- a/libmlk-ui/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for libmlk-ui -# -# 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. -# - -project(libmlk-ui) - -set( - ASSETS - ${libmlk-ui_SOURCE_DIR}/assets/fonts/opensans-light.ttf - ${libmlk-ui_SOURCE_DIR}/assets/fonts/opensans-regular.ttf -) - -set( - PO - ${libmlk-ui_SOURCE_DIR}/nls/fr.po - ${libmlk-ui_SOURCE_DIR}/nls/libmlk-ui.pot -) - -set( - SOURCES - ${libmlk-ui_SOURCE_DIR}/ui/align.c - ${libmlk-ui_SOURCE_DIR}/ui/align.h - ${libmlk-ui_SOURCE_DIR}/ui/button.c - ${libmlk-ui_SOURCE_DIR}/ui/button.h - ${libmlk-ui_SOURCE_DIR}/ui/checkbox.c - ${libmlk-ui_SOURCE_DIR}/ui/checkbox.h - ${libmlk-ui_SOURCE_DIR}/ui/debug.c - ${libmlk-ui_SOURCE_DIR}/ui/debug.h - ${libmlk-ui_SOURCE_DIR}/ui/frame.c - ${libmlk-ui_SOURCE_DIR}/ui/frame.h - ${libmlk-ui_SOURCE_DIR}/ui/gridmenu.c - ${libmlk-ui_SOURCE_DIR}/ui/gridmenu.h - ${libmlk-ui_SOURCE_DIR}/ui/label.c - ${libmlk-ui_SOURCE_DIR}/ui/label.h - ${libmlk-ui_SOURCE_DIR}/ui/theme.c - ${libmlk-ui_SOURCE_DIR}/ui/theme.h - ${libmlk-ui_SOURCE_DIR}/ui/ui.c - ${libmlk-ui_SOURCE_DIR}/ui/ui.h - ${libmlk-ui_SOURCE_DIR}/ui/ui_p.h -) - -molko_define_library( - TARGET libmlk-ui - TRANSLATIONS fr - SOURCES ${SOURCES} ${PO} ${ASSETS} - ASSETS ${ASSETS} - LIBRARIES - libmlk-core - INCLUDES - PUBLIC - $<BUILD_INTERFACE:${libmlk-ui_SOURCE_DIR}> -) - -source_group(TREE ${libmlk-ui_SOURCE_DIR} FILES ${ASSETS} ${PO} ${SOURCES})
--- a/libmlk-ui/ui/theme.c Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-ui/ui/theme.c Wed Jun 23 22:41:34 2021 +0200 @@ -65,8 +65,8 @@ struct font **dest; struct font font; } default_fonts[] = { - FONT(fonts_opensans_light, 12, THEME_FONT_DEBUG), - FONT(fonts_opensans_regular, 14, THEME_FONT_INTERFACE) + FONT(assets_opensans_light, 12, THEME_FONT_DEBUG), + FONT(assets_opensans_regular, 14, THEME_FONT_INTERFACE) }; int
--- a/libmlk-ui/ui/ui_p.h Sun Apr 11 17:43:57 2021 +0200 +++ b/libmlk-ui/ui/ui_p.h Wed Jun 23 22:41:34 2021 +0200 @@ -19,7 +19,7 @@ #ifndef MOLKO_UI_UI_P_H #define MOLKO_UI_UI_P_H -#include "sysconfig.h" +#include "config.h" #if defined(MOLKO_WITH_NLS) # include <libintl.h>
--- a/mlk-adventure/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -# 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. -# - -project(mlk-adventure) - -molko_define_executable( - TARGET mlk-adventure - SOURCES main.c - LIBRARIES libmlk-adventure - INSTALL -)
--- a/tests/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -# -# 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. -# - -project(tests) - -molko_define_test(TARGET action SOURCES test-action.c) -molko_define_test(TARGET action-script SOURCES test-action-script.c) -molko_define_test(TARGET alloc SOURCES test-alloc.c) -molko_define_test(TARGET character SOURCES test-character.c) -molko_define_test(TARGET color SOURCES test-color.c) -molko_define_test(TARGET error SOURCES test-error.c) - -molko_define_test( - TARGET map - SOURCES test-map.c - FLAGS DIRECTORY="${tests_SOURCE_DIR}/assets/maps/" -) - -molko_define_test(TARGET save SOURCES test-save.c) -molko_define_test(TARGET state SOURCES test-state.c) -molko_define_test(TARGET drawable SOURCES test-drawable.c) - -molko_define_test( - TARGET tileset - SOURCES test-tileset.c - FLAGS DIRECTORY="${tests_SOURCE_DIR}/assets/maps/" -) - -molko_define_test(TARGET util SOURCES test-util.c)
--- a/tools/bcc/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for molko-bcc -# -# 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. -# - -project(molko-bcc) -molko_define_executable(TARGET mlk-bcc SOURCES main.c FOLDER tools INSTALL)
--- a/tools/map/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for mlk-map -# -# 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. -# - -project(mlk-map) - -molko_define_executable( - TARGET mlk-map - SOURCES main.c - FOLDER tools - LIBRARIES Jansson::Jansson - INSTALL -)
--- a/tools/tileset/CMakeLists.txt Sun Apr 11 17:43:57 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for mlk-tileset -# -# 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. -# - -project(mlk-tileset) - -molko_define_executable( - TARGET mlk-tileset - SOURCES main.c - FOLDER tools - LIBRARIES Jansson::Jansson - INSTALL -)