-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
45 lines (37 loc) · 1.12 KB
/
CMakeLists.txt
File metadata and controls
45 lines (37 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
cmake_minimum_required(VERSION 3.10)
project(mfoes CXX)
# SDL2 Setup
set(SDL_SHARED FALSE)
set(SDL_STATIC TRUE)
set(SDL_LIBC ON)
set(SDL_MAIN_HANDLED ON)
add_subdirectory(SDL)
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(IMGUI_DIR "${CMAKE_CURRENT_SOURCE_DIR}/imgui")
# 1. Define ImGui sources explicitly (No GLOB for external libs is safer)
set(IMGUI_SOURCES
${IMGUI_DIR}/imgui.cpp
${IMGUI_DIR}/imgui_draw.cpp
${IMGUI_DIR}/imgui_tables.cpp
${IMGUI_DIR}/imgui_widgets.cpp
${IMGUI_DIR}/imgui_demo.cpp
${IMGUI_DIR}/backends/imgui_impl_sdl2.cpp
${IMGUI_DIR}/backends/imgui_impl_sdlrenderer2.cpp
)
# 2. Use GLOB only for your project files
file(GLOB_RECURSE PROJECT_SOURCES "${SOURCE_DIR}/*.cpp")
# 3. Combine both lists here
add_executable(mfoes ${PROJECT_SOURCES} ${IMGUI_SOURCES})
target_include_directories(mfoes PRIVATE
${SOURCE_DIR}
${IMGUI_DIR}
${IMGUI_DIR}/backends
)
# Added "imm32" and "winmm" which are often required by ImGui/SDL on Windows
target_link_libraries(mfoes PRIVATE
SDL2-static
SDL2main
imm32
winmm
)
target_compile_definitions(mfoes PRIVATE SDL_MAIN_HANDLED)