summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorChuyan Zhang <me@zcy.moe>2024-09-05 01:11:42 -0700
committerChuyan Zhang <me@zcy.moe>2024-09-05 01:11:42 -0700
commit8c7926588b616988e7b016eaf704acee0ee77cc9 (patch)
treea1bb11131aea964f9fa0bca76196c3351530c01d /CMakeLists.txt
downloadiris-8c7926588b616988e7b016eaf704acee0ee77cc9.tar.gz
iris-8c7926588b616988e7b016eaf704acee0ee77cc9.zip
Initial setup
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..05e821f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,36 @@
+# CMakeLists.txt
+
+cmake_minimum_required(VERSION 3.11)
+
+project(IrisRenderer VERSION 1.0)
+
+set(CMAKE_CXX_STANDARD 20)
+set(PROJECT_ROOT ${CMAKE_SOURCE_DIR})
+set(SRC_DIR ${PROJECT_ROOT}/src)
+set(EXT_DIR ${PROJECT_ROOT}/ext)
+
+# Add external libraries
+include(${EXT_DIR}/imgui.cmake)
+
+add_library(argparse INTERFACE)
+target_include_directories(argparse INTERFACE ${EXT_DIR}/argparse/include)
+
+add_library(tinygltf INTERFACE)
+target_include_directories(tinygltf INTERFACE ${EXT_DIR}/tinygltf)
+
+add_library(tinyobjloader INTERFACE)
+target_include_directories(tinyobjloader INTERFACE ${EXT_DIR}/tinyobjloader)
+
+# Add your project's source files
+file(GLOB_RECURSE SOURCES "${SRC_DIR}/*.cpp")
+
+# Add executable from your source files
+add_executable(IrisRenderer ${SOURCES})
+
+find_package(glfw3 REQUIRED)
+
+# Link external libraries to your project
+target_link_libraries(IrisRenderer PRIVATE argparse imgui tinygltf tinyobjloader glfw)
+
+# Optional: Include additional compiler options or flags
+target_compile_options(IrisRenderer PRIVATE -Wall -Wextra)