cmake_minimum_required(VERSION 4.1) project(game) set(CMAKE_CXX_STANDARD 23) include(FetchContent) FetchContent_Declare( raylib GIT_REPOSITORY https://github.com/raysan5/raylib.git GIT_TAG c1ab645ca298a2801097931d1079b10ff7eb9df8 ) FetchContent_MakeAvailable(raylib) target_compile_definitions(raylib PRIVATE SUPPORT_CUSTOM_FRAME_CONTROL) FetchContent_Declare( freetype GIT_REPOSITORY https://github.com/freetype/freetype.git GIT_TAG 526ec5c47b9ebccc4754c85ac0c0cdf7c85a5e9b ) set(FT_DISABLE_ZLIB TRUE CACHE BOOL "" FORCE) set(FT_DISABLE_BZIP2 TRUE CACHE BOOL "" FORCE) set(FT_DISABLE_PNG TRUE CACHE BOOL "" FORCE) set(FT_DISABLE_HARFBUZZ TRUE CACHE BOOL "" FORCE) set(FT_DISABLE_BROTLI TRUE CACHE BOOL "" FORCE) FetchContent_MakeAvailable(freetype) FetchContent_Declare( harfbuzz GIT_REPOSITORY https://github.com/harfbuzz/harfbuzz.git GIT_TAG b42511e071162fe76102f613a6ccc009726c99af ) set(HB_HAVE_FREETYPE ON CACHE BOOL "" FORCE) set(HB_HAVE_GLIB OFF CACHE BOOL "" FORCE) set(HB_HAVE_ICU OFF CACHE BOOL "" FORCE) FetchContent_Declare( stb GIT_REPOSITORY https://github.com/nothings/stb.git GIT_TAG master ) FetchContent_MakeAvailable(stb) if(NOT TARGET stb) # 3. Create a header-only "Interface" target add_library(stb INTERFACE) # 4. Point the target to the downloaded folder target_include_directories(stb INTERFACE ${stb_SOURCE_DIR}) endif() FetchContent_Declare( tracy GIT_REPOSITORY https://github.com/wolfpld/tracy.git GIT_TAG 05cceee0df3b8d7c6fa87e9638af311dbabc63cb ) FetchContent_MakeAvailable(tracy) FetchContent_Declare( kb GIT_REPOSITORY https://github.com/JimmyLefevre/kb.git GIT_TAG main ) FetchContent_MakeAvailable(kb) if(NOT TARGET kb) add_library(kb INTERFACE) target_include_directories(kb INTERFACE "${kb_SOURCE_DIR}") endif() add_executable(game src/main.cpp src/font.cpp src/misc.cpp src/misc.h src/entity.cpp src/entity.h src/font.h) target_link_libraries(game PRIVATE raylib freetype harfbuzz stb Tracy::TracyClient kb) target_compile_definitions(game PUBLIC TRACY_ENABLE) add_custom_command( TARGET game POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/assets ${CMAKE_CURRENT_BINARY_DIR}/assets COMMENT "Copying assets to build directory" )