cmake_minimum_required(VERSION 3.0) include(cmake/shader.txt) add_subdirectory(contrib/cgltf) add_subdirectory(contrib/cgltf-tangents) add_subdirectory(contrib/stb) add_subdirectory(app) 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)