aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/CMakeLists.txt36
1 files changed, 22 insertions, 14 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 1e98e55..f7ff658 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.20)
-
project(fsarcade)
+# compile options
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -12,23 +12,27 @@ set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-
-# set binary directory
-set(FSARCADE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/..")
-set(FSARCADE_SRC_DIR "${FSARCADE_ROOT_DIR}/src")
-set(IMGUI_SRC_DIR "${FSARCADE_ROOT_DIR}/external/imgui")
+# code directories
+set(FSARCADE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/..")
+set(FSARCADE_SRC_DIR "${FSARCADE_ROOT_DIR}/src")
+set(IMGUI_SRC_DIR "${FSARCADE_ROOT_DIR}/external/imgui")
set(GLAD_SRC_DIR "${FSARCADE_ROOT_DIR}/external/glad/src")
set(GLAD_INC_DIR "${FSARCADE_ROOT_DIR}/external/glad/include")
+
+
+# output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${FSARCADE_ROOT_DIR}/runtree)
+# required packages
+find_package(SDL3 REQUIRED)
+
# fsarcade
add_executable(fsarcade)
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(fsarcade PRIVATE -pedantic-errors -Wall -Weffc++ -Wconversion -Wsign-conversion -Wshadow -mavx2)
endif ()
-
target_sources(fsarcade PUBLIC
${FSARCADE_SRC_DIR}/main.cpp
${FSARCADE_SRC_DIR}/common/math.cpp
@@ -43,6 +47,14 @@ target_sources(fsarcade PUBLIC
${FSARCADE_SRC_DIR}/games/snake/Snake.cpp
${FSARCADE_SRC_DIR}/games/minesweeper/Minesweeper.cpp
${FSARCADE_SRC_DIR}/games/pong/Pong.cpp
+)
+target_include_directories(fsarcade PRIVATE
+ ${FSARCADE_SRC_DIR}
+)
+
+
+# imgui
+add_library(imgui OBJECT
${IMGUI_SRC_DIR}/imgui.cpp
${IMGUI_SRC_DIR}/imgui_draw.cpp
${IMGUI_SRC_DIR}/imgui_tables.cpp
@@ -50,12 +62,7 @@ target_sources(fsarcade PUBLIC
${IMGUI_SRC_DIR}/backends/imgui_impl_sdl3.cpp
${IMGUI_SRC_DIR}/backends/imgui_impl_opengl3.cpp
)
-target_include_directories(fsarcade PUBLIC
- ${FSARCADE_SRC_DIR}
- ${IMGUI_SRC_DIR}
- ${IMGUI_SRC_DIR}/backends
- ${FSARCADE_ROOT_DIR}/external/stb
-)
+target_include_directories(imgui PUBLIC ${IMGUI_SRC_DIR} ${IMGUI_SRC_DIR}/backends)
# glad
@@ -74,5 +81,6 @@ target_include_directories(stb_truetype PUBLIC
${FSARCADE_ROOT_DIR}/external/stb
)
-target_link_libraries(fsarcade GL glad SDL3 dl stb_truetype)
+
+target_link_libraries(fsarcade SDL3::SDL3 GL glad dl imgui stb_truetype)