51 lines
1.8 KiB
CMake
51 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(PuzGameProj)
|
|
|
|
if (MSVC)
|
|
|
|
else()
|
|
add_compile_options(-g -gcodeview)
|
|
add_link_options(-fuse-ld=lld -g -Wl,--pdb=)
|
|
endif()
|
|
|
|
# set the output directory for built objects.
|
|
# This makes sure that the dynamic library goes into the build directory automatically.
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$<CONFIGURATION>")
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$<CONFIGURATION>")
|
|
|
|
# Imgui
|
|
file(GLOB imgui_sources dependency/imgui/*.h dependency/imgui/*.cpp)
|
|
file(GLOB imgui_backend_sdl
|
|
dependency/imgui/backends/imgui_impl_sdl3.h
|
|
dependency/imgui/backends/imgui_impl_sdl3.cpp)
|
|
|
|
# Engine
|
|
file(GLOB_RECURSE sources_engine engine/*.cpp engine/*.h)
|
|
add_executable(PuzGameEngine ${sources_engine} ${imgui_sources} ${imgui_backend_sdl})
|
|
set_property(TARGET PuzGameEngine PROPERTY CXX_STANDARD 17)
|
|
target_include_directories(PuzGameEngine PUBLIC dependency/imgui)
|
|
#file(COPY ${data} DESTINATION resources)
|
|
|
|
#target_compile_options(PuzGameEngine PUBLIC xyz)
|
|
#file(GLOB_RECURSE data resources/xyz)
|
|
|
|
# Game
|
|
file(GLOB_RECURSE sources_game game/*.cpp game/*.h)
|
|
file(GLOB source_singleheader dependency/tinygltf/stb_image.h dependency/tinygltf/stb_image_write.h dependency/tinygltf/json.hpp dependency/tinygltf/tiny_gltf.h)
|
|
add_library(PuzGame SHARED ${sources_game} ${source_singleheader} ${imgui_sources})
|
|
set_property(TARGET PuzGame PROPERTY CXX_STANDARD 17)
|
|
target_include_directories(PuzGame PUBLIC dependency/imgui)
|
|
|
|
# SDL
|
|
add_subdirectory("${CMAKE_SOURCE_DIR}/dependency/SDL" EXCLUDE_FROM_ALL)
|
|
|
|
# BGFX
|
|
SET(BGFX_BUILD_TOOLS ON)
|
|
SET(BGFX_BUILD_EXAMPLES OFF)
|
|
add_subdirectory("${CMAKE_SOURCE_DIR}/dependency/bgfx.cmake")
|
|
|
|
# Link
|
|
target_link_libraries(PuzGame bx bimg bgfx)
|
|
target_link_libraries(PuzGameEngine bx SDL3::SDL3)
|
|
set_target_properties(PuzGame PROPERTIES OUTPUT_NAME "PuzGame2")
|