2023-10-09 05:00:50 +00:00
|
|
|
cmake_minimum_required(VERSION 3.22)
|
|
|
|
|
2023-10-10 00:19:54 +00:00
|
|
|
project(kge LANGUAGES CXX VERSION 0.0.1)
|
2023-10-09 08:27:53 +00:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
2023-10-09 05:00:50 +00:00
|
|
|
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
|
|
find_package(OpenGL REQUIRED)
|
2023-10-10 00:19:54 +00:00
|
|
|
find_package(klib REQUIRED)
|
2023-10-09 10:19:09 +00:00
|
|
|
find_package(Freetype)
|
|
|
|
if (DEFINED FREETYPE_INCLUDE_DIRS)
|
|
|
|
add_definitions(-DIMGUI_ENABLE_FREETYPE)
|
|
|
|
set(FREETYPE_SOURCES
|
|
|
|
ext/imgui/misc/freetype/imgui_freetype.cpp
|
|
|
|
ext/imgui/misc/freetype/imgui_freetype.h)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
add_compile_options("/W4" "$<$<CONFIG:RELEASE>:/O2>")
|
|
|
|
else()
|
|
|
|
add_compile_options("-Wall" "-Wextra" "-Werror" "$<$<CONFIG:RELEASE>:-O3>")
|
|
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
add_compile_options("-stdlib=libc++")
|
|
|
|
else()
|
|
|
|
# nothing special for gcc at the moment
|
|
|
|
endif()
|
|
|
|
endif()
|
2023-10-09 05:00:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
add_library(imgui STATIC
|
|
|
|
# Main Imgui files
|
|
|
|
ext/imgui/imgui.cpp
|
|
|
|
ext/imgui/imgui.h
|
|
|
|
ext/imgui/imgui_draw.cpp
|
|
|
|
ext/imgui/imgui_tables.cpp
|
|
|
|
ext/imgui/imgui_widgets.cpp
|
|
|
|
ext/imgui/imgui_demo.cpp
|
|
|
|
|
|
|
|
ext/imgui/backends/imgui_impl_sdl2.cpp
|
|
|
|
ext/imgui/backends/imgui_impl_sdl2.h
|
|
|
|
ext/imgui/backends/imgui_impl_opengl3.cpp
|
2023-10-09 05:29:47 +00:00
|
|
|
ext/imgui/backends/imgui_impl_opengl3.h
|
|
|
|
|
2023-10-09 10:19:09 +00:00
|
|
|
$<IF:$<TARGET_EXISTS:Freetype::Freetype>,${FREETYPE_SOURCES},>)
|
2023-10-09 05:00:50 +00:00
|
|
|
add_library(imgui::imgui ALIAS imgui)
|
|
|
|
target_link_libraries(imgui
|
2023-10-09 08:27:53 +00:00
|
|
|
PUBLIC
|
|
|
|
OpenGL::GL
|
2023-10-09 10:19:09 +00:00
|
|
|
$<IF:$<TARGET_EXISTS:Freetype::Freetype>,Freetype::Freetype,>
|
2023-10-09 08:27:53 +00:00
|
|
|
$<TARGET_NAME_IF_EXISTS:SDL2::SDL2main>
|
2023-10-09 10:19:09 +00:00
|
|
|
$<IF:$<TARGET_EXISTS:SDL2::SDL2>,SDL2::SDL2,SDL2::SDL2-static>)
|
2023-10-09 05:00:50 +00:00
|
|
|
target_include_directories(imgui PUBLIC
|
2023-10-09 08:27:53 +00:00
|
|
|
ext/imgui/
|
|
|
|
ext/imgui/backends/
|
|
|
|
ext/imgui/misc/freetype
|
2023-10-09 10:19:09 +00:00
|
|
|
$<IF:$<TARGET_EXISTS:Freetype::Freetype>,${FREETYPE_INCLUDE_DIRS},>)
|
2023-10-09 05:00:50 +00:00
|
|
|
|
2023-10-10 00:19:54 +00:00
|
|
|
include_directories(ext/ ${SDL2_INCLUDE_DIRS} ${KLIB_INCLUDE_DIRS})
|
2023-10-09 11:49:38 +00:00
|
|
|
|
2023-10-09 05:00:50 +00:00
|
|
|
add_executable(kge
|
2023-10-09 08:27:53 +00:00
|
|
|
kge.cc
|
2023-10-09 10:19:09 +00:00
|
|
|
)
|
2023-10-10 00:19:54 +00:00
|
|
|
target_link_libraries(kge imgui ${KLIB_LIBRARIES})
|
|
|
|
install(TARGETS kge RUNTIME DESTINATION bin)
|
2023-10-09 05:00:50 +00:00
|
|
|
|
2023-10-10 00:19:54 +00:00
|
|
|
include(CMakePack.txt)
|