118 lines
2.4 KiB
CMake
118 lines
2.4 KiB
CMake
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
|
|
$<INSTALL_INTERFACE:include>
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
${libraryDirs})
|
|
|
|
file(COPY ${BreezeHeaders} DESTINATION "include")
|
|
|
|
if (${BUILD_BREEZE_TESTS} AND NOT EMSCRIPTEN)
|
|
MESSAGE(STATUS "Building breeze tests is enabled")
|
|
add_subdirectory(tests)
|
|
endif()
|
|
|