cmake_minimum_required(VERSION 3.26) project(Breeze C) set(CMAKE_C_STANDARD 11) if (EMSCRIPTEN) add_compile_options(-Wall -Wextra -Wpedantic) else() #add_compile_options(-Wall -Wextra -Wpedantic -std=c11) add_compile_options(-Wall -Wextra) endif() add_compile_definitions(DEBUG_MODE) set(BUILD_EXAMPLES false) add_subdirectory(libs/cimgui) add_subdirectory(libs/flecs) add_subdirectory(libs/raylib-4.5.0) add_subdirectory(libs/rlImGui) target_link_libraries(rlImGui cimgui raylib) set(librarySources libs/cute_tiled/cute_tiled.c libs/raygui/raygui.c libs/stb/stb.c ) set(libraryDirs libs/cute_tiled libs/raygui libs/rlImGui libs/stb ) set(BreezeSources breeze/ai/behaviour_tree.c breeze/core/logger.c breeze/core/module_system.c breeze/memory/memory.c breeze/memory/stack_alloc.c breeze/map/map.c breeze/map/tileset.c breeze/ui/ui.c breeze/util/array.c breeze/util/heap.c breeze/util/object_pool.c breeze/util/spatial_grid.c breeze/util/tokenizer.c ) set(BreezeHeaders breeze/ai/behaviour_tree.h breeze/core/logger.h breeze/math/vec2i.h breeze/math/easings.h breeze/memory/memory.h breeze/memory/stack_alloc.h breeze/map/map.h breeze/map/tileset.h breeze/ui/ui.h breeze/util/array.h breeze/util/heap.h breeze/util/object_pool.h breeze/util/spatial_grid.h breeze/util/string.h breeze/util/tokenizer.h breeze/defines.h breeze/game.h breeze.h ) set(BreezeInternalHeaders breeze/core/logger_module.h breeze/core/module_system.h ) add_library(Breeze STATIC ${BreezeSources} ${BreezeInternalHeaders} ${BreezeHeaders} ${librarySources} ) set_target_properties(Breeze PROPERTIES PUBLIC_HEADER "${BreezeHeaders}") target_link_libraries(Breeze raylib flecs::flecs_static rlImGui) #target_include_directories(Breeze PUBLIC .) target_include_directories(Breeze PUBLIC $ $ ${libraryDirs}) file(COPY ${BreezeHeaders} DESTINATION "include") if (${BUILD_BREEZE_TESTS} AND NOT EMSCRIPTEN) MESSAGE(STATUS "Building breeze tests is enabled") add_subdirectory(tests) endif()