diff options
| author | fschildt <florian.schildt@protonmail.com> | 2026-01-14 16:34:40 +0100 |
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2026-01-14 16:34:40 +0100 |
| commit | f463853872210415e06fb3f863325fdba303ab65 (patch) | |
| tree | bc9d809e4955b3bb0a2a5e39998a741fc4b53717 | |
| parent | be66c702739fcf953dc943c9c10ebd925b665bdc (diff) | |
cmake: imgui as object library
| -rw-r--r-- | cmake/CMakeLists.txt | 36 |
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) |
