aboutsummaryrefslogtreecommitdiff
path: root/mons_3d/CMakeLists.txt
diff options
context:
space:
mode:
authorLibravatar Silas Bartha <silas@exvacuum.dev>2025-02-07 11:27:18 -0500
committerLibravatar Silas Bartha <silas@exvacuum.dev>2025-02-07 11:27:18 -0500
commit4da7be39827ea5888ef9c97b1aadf61b0d76347c (patch)
tree15d0ff8f8bcb0e871efb1b2e65c2bc8d07b17565 /mons_3d/CMakeLists.txt
initial commit (lol)
Diffstat (limited to 'mons_3d/CMakeLists.txt')
-rw-r--r--mons_3d/CMakeLists.txt41
1 files changed, 41 insertions, 0 deletions
diff --git a/mons_3d/CMakeLists.txt b/mons_3d/CMakeLists.txt
new file mode 100644
index 0000000..a5583c6
--- /dev/null
+++ b/mons_3d/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.14)
+project(mons_3d LANGUAGES C)
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_EXPORT_COMPILE_COMMANDS true)
+set(CMAKE_BUILD_TYPE "Debug")
+
+add_library(mons_3d
+ SHARED
+ ./src/mesh.c
+ ./src/color.c
+ ./src/model.c
+ ./src/shader.c
+ ./src/texture.c
+ ./src/transform.c
+ ./src/projection.c
+ ./external/glad/src/gl.c
+ ./external/glad/src/glx.c
+ ./external/mikktspace/src/mikktspace.c
+)
+
+target_include_directories(mons_3d PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/include"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/external/glad/include"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/external/mikktspace/include"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
+)
+target_compile_options(mons_3d PRIVATE -coverage)
+target_link_options(mons_3d PRIVATE -coverage)
+target_link_libraries(mons_3d PUBLIC mons_collections mons_math mons_image)
+
+include(CTest)
+
+function(TESTCASE NAME)
+ add_executable(test_${NAME} ./tests/${NAME}.c)
+ target_link_libraries(test_${NAME} PUBLIC mons_3d)
+ add_test(
+ NAME ${NAME}
+ COMMAND $<TARGET_FILE:test_${NAME}>
+ )
+endfunction()
+