Files
PixelDefense/engine/CMakeLists.txt
2023-11-15 18:32:43 +01:00

94 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.26)
project(Breeze C)
set(CMAKE_C_STANDARD 11)
add_compile_options(-Wall -Wextra -Wpedantic -std=c11)
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
)
set(libraryDirs
libs/cute_tiled
libs/raygui
libs/rlImGui
)
set(BreezeSources
breeze/core/logger.c
breeze/core/memory.c
breeze/core/module_system.c
breeze/map/map.c
breeze/map/tileset.c
breeze/utils/array.c
breeze/utils/heap.c
breeze/utils/tokenizer.c
)
set(BreezeHeaders
breeze/core/logger.h
breeze/core/memory.h
breeze/math/vec2i.h
breeze/map/map.h
breeze/map/tileset.h
breeze/utils/array.h
breeze/utils/heap.h
breeze/utils/string.h
breeze/utils/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})
MESSAGE(STATUS "Building breeze tests is enabled")
add_subdirectory(tests)
endif()