summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt73
1 files changed, 57 insertions, 16 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8b9cc1d..2e915f8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,25 +1,71 @@
# Set global include dirs
set(DAW_INCLUDE_DIRS
- ${CMAKE_CURRENT_LIST_DIR}/core/include
- ${CMAKE_CURRENT_LIST_DIR}/ctrl/include
+ ${CMAKE_CURRENT_LIST_DIR}/include
${CMAKE_CURRENT_LIST_DIR}/rendering/include
- ${CMAKE_CURRENT_LIST_DIR}/resources/include
- ${CMAKE_CURRENT_LIST_DIR}/utils/include
${CMAKE_BINARY_DIR}/include
)
-# Add the engine modules
-add_subdirectory(core)
-add_subdirectory(ctrl)
-add_subdirectory(rendering)
-add_subdirectory(resources)
-add_subdirectory(utils)
+add_custom_command(
+ OUTPUT ${GLAD_HEADER}
+ COMMAND
+ glad
+ --api gl:core=4.6
+ --out-path ${CMAKE_BINARY_DIR}
+ --reproducible
+ c
+ --header-only
+ --mx
+ )
+
# DAW Engine compilation spec
add_library(${PROJECT_NAME}
+ # User facing API
+ api/daw.h
+
+ # Types and (internal) interfaces
+ include/daw/platform.h
+ include/daw/types.h
+
+ # Utility algorithms & datastructures
+ include/daw/utils.h
+ include/daw/utils/list.h
+ btree.c include/daw/utils/btree.h
+ fov.c include/daw/utils/fov.h
+ hashmap.c include/daw/utils/hashmap.h
+ misc.c
+ stack.c include/daw/utils/stack.h
+
+ # Core functionality
+ daw.c include/daw/daw.h
+ dltools.c include/daw/dltools.h
+ logging.c include/daw/logging.h
+ memory.c include/daw/memory.h
+ state.c include/daw/state.h
+
+ # Peripheral IO
+ input.c include/daw/input.h
+ include/daw/keycodes.h
+ include/daw/scancodes.h
+
+ # The rendering & presentation mess
+ gl.c
+ platform_glfw.c include/daw/platform_glfw.h
+ rendering.c include/daw/rendering.h
+ textures.c include/daw/texture.h
+ window.c include/daw/window.h
+
+ # Resource handling
+ model.c include/daw/model.h
+ resources.c include/daw/resources.h
+
+ # Autogenerated header
${GLAD_HEADER}
)
+set_property(SOURCE src/window.c APPEND PROPERTY OBJECT_DEPENDS ${GLAD_HEADER})
+set_property(SOURCE src/rendering.c APPEND PROPERTY OBJECT_DEPENDS ${GLAD_HEADER})
+
set_target_properties(${PROJECT_NAME} PROPERTIES
LINKER_LANGUAGE C
C_STANDARD 99
@@ -27,19 +73,14 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
target_include_directories(${PROJECT_NAME} PUBLIC
include
- # TODO include stb (??)
${CMAKE_BINARY_DIR}/include
)
target_link_libraries(${PROJECT_NAME}
glfw
OpenGL::GL
+ assimp
cglm
- daw_core
- daw_rendering
- daw_ctrl
- daw_resources
- daw_utils
$<$<NOT:$<PLATFORM_ID:Windows>>:m>
$<$<BOOL:${DAW_BUILD_HOTRELOAD}>:dl>
$<$<AND:$<NOT:$<C_COMPILER_ID:MSVC>>,$<BOOL:${DAW_BUILD_UBSAN}>>:ubsan>