From bd57f345ed9dbed1d81683e48199626de2ea9044 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 27 Jun 2025 10:18:39 -0700 Subject: Restructure project --- CMakeLists.txt | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 87 insertions(+), 4 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 25c7560..b13f28b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,91 @@ cmake_minimum_required(VERSION 3.0) -project(gfx-all) +include(cmake/shader.txt) + +add_subdirectory(contrib/cgltf) +add_subdirectory(contrib/cgltf-tangents) +add_subdirectory(contrib/stb) add_subdirectory(app) -add_subdirectory(gfx) -add_subdirectory(gfx-iso) -add_subdirectory(game) + +project(gfx) + +add_shader_library(shaders + shaders/brdf_integration_map.frag + shaders/cook_torrance.frag + shaders/cook_torrance.vert + shaders/cubemap_filtering.vert + shaders/debug3d.frag + shaders/debug3d.vert + shaders/immediate_mode.frag + shaders/immediate_mode.vert + shaders/irradiance_map.frag + shaders/prefiltered_environment_map.frag + shaders/quad.vert + shaders/skyquad.frag + shaders/skyquad.vert + shaders/view_normal_mapped_normals.frag + shaders/view_normal_mapped_normals.vert + shaders/view_normals.frag + shaders/view_normals.vert + shaders/view_tangents.frag + shaders/view_tangents.vert + shaders/view_texture.frag + shaders/view_texture.vert) + +add_library(gfx SHARED + src/asset/asset_cache.c + src/asset/model.c + src/asset/texture.c + src/core/buffer.c + src/core/core.c + src/core/framebuffer.c + src/core/geometry.c + src/core/renderbuffer.c + src/core/shader_program.c + src/core/shader.c + src/core/texture.c + src/renderer/imm_renderer.c + src/renderer/renderer.c + src/scene/animation.c + src/scene/camera.c + src/scene/light.c + src/scene/material.c + src/scene/mesh.c + src/scene/model.c + src/scene/node.c + src/scene/object.c + src/scene/scene.c + src/scene/scene_memory.c + src/gfx.c + src/util/geometry.c + src/util/ibl.c + src/util/shader.c + src/util/skyquad.c) + +target_include_directories(gfx PUBLIC + include) + +target_include_directories(gfx PRIVATE + src) + +target_compile_options(gfx PRIVATE -std=gnu11 -Wall -Wextra -Wpedantic) + +target_link_libraries(gfx PUBLIC + cstring + math) + +target_link_libraries(gfx PRIVATE + cassert + cgltf + cgltf-tangents + error + gfx-app + log + mempool + shaders + stb + # System libraries. + GL + # Required to initialize GLAD. + -ldl) -- cgit v1.2.3