added raygui and tried to make it not throw errors
This commit is contained in:
@@ -3,39 +3,64 @@ project(FPS_DRUID LANGUAGES C)
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
# Default build type for single-config generators
|
||||
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type" FORCE)
|
||||
endif()
|
||||
|
||||
# ---------- Fetch raylib ----------
|
||||
include(FetchContent)
|
||||
set(FETCHCONTENT_QUIET FALSE)
|
||||
set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||
set(BUILD_GAMES OFF CACHE BOOL "" FORCE)
|
||||
|
||||
# ---- raylib ----
|
||||
FetchContent_Declare(
|
||||
raylib
|
||||
GIT_REPOSITORY https://github.com/raysan5/raylib.git
|
||||
GIT_TAG 5.5 # stable release
|
||||
GIT_TAG 5.5
|
||||
GIT_PROGRESS TRUE
|
||||
)
|
||||
FetchContent_MakeAvailable(raylib)
|
||||
|
||||
# ---------- Paths (match your tree) ----------
|
||||
# ==== raygui (NEW) ====
|
||||
FetchContent_Declare(
|
||||
raygui_src
|
||||
GIT_REPOSITORY https://github.com/raysan5/raygui.git
|
||||
GIT_TAG master
|
||||
GIT_PROGRESS TRUE
|
||||
)
|
||||
FetchContent_GetProperties(raygui_src)
|
||||
if(NOT raygui_src_POPULATED)
|
||||
FetchContent_Populate(raygui_src)
|
||||
set(BUILD_RAYGUI_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||
# raygui's CMakeLists is here:
|
||||
add_subdirectory(${raygui_src_SOURCE_DIR}/projects/CMake ${raygui_src_BINARY_DIR})
|
||||
endif()
|
||||
# ======================
|
||||
|
||||
# ---- Paths ----
|
||||
set(SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/src")
|
||||
set(INC_DIR "${CMAKE_CURRENT_LIST_DIR}/include")
|
||||
set(ASSETS_DIR "${CMAKE_CURRENT_LIST_DIR}/assets")
|
||||
|
||||
# ---------- Sources ----------
|
||||
# ---- Sources ----
|
||||
file(GLOB_RECURSE PROJECT_SOURCES CONFIGURE_DEPENDS "${SRC_DIR}/*.c")
|
||||
|
||||
add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE "${SRC_DIR}" "${INC_DIR}")
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE raylib)
|
||||
|
||||
# ---------- Warnings / ASan ----------
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
"${SRC_DIR}"
|
||||
"${INC_DIR}"
|
||||
# raygui headers
|
||||
${raygui_src_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
# Link raylib + raygui
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE raylib raygui)
|
||||
|
||||
# ---- Warnings / ASan ----
|
||||
if(MSVC)
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE /W4 /permissive-)
|
||||
else()
|
||||
@@ -46,14 +71,14 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ---------- Assets: copy next to the exe ----------
|
||||
# ---- Assets copy ----
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
"${ASSETS_DIR}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>/assets"
|
||||
COMMENT "Copying assets next to the executable"
|
||||
)
|
||||
|
||||
# Compile-time asset root: absolute in Debug; relative otherwise
|
||||
# Compile-time asset root
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Debug>:ASSETS_PATH="${ASSETS_DIR}/">
|
||||
$<$<NOT:$<CONFIG:Debug>>:ASSETS_PATH="./assets/">
|
||||
|
||||
Reference in New Issue
Block a user