58 lines
1.5 KiB
CMake
58 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.11...3.31)
|
|
|
|
project(kubo LANGUAGES C)
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
option(USE_SYSTEM_RAYLIB "Use system-installed raylib instead of downloading" OFF)
|
|
|
|
if(USE_SYSTEM_RAYLIB)
|
|
set(RAYLIB_VERSION 5.5)
|
|
find_package(raylib ${RAYLIB_VERSION} REQUIRED)
|
|
else()
|
|
include(FetchContent)
|
|
set(FETCHCONTENT_QUIET FALSE)
|
|
set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) # don't build the supplied examples
|
|
set(BUILD_GAMES OFF CACHE BOOL "" FORCE) # don't build the supplied example games
|
|
set(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" ON)
|
|
set(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON)
|
|
|
|
FetchContent_Declare(
|
|
raylib
|
|
GIT_REPOSITORY "https://github.com/raysan5/raylib.git"
|
|
GIT_TAG "master"
|
|
GIT_PROGRESS TRUE
|
|
)
|
|
|
|
FetchContent_MakeAvailable(raylib)
|
|
endif()
|
|
|
|
find_path(CYAML_INCLUDE_DIR cyaml/cyaml.h)
|
|
find_library(CYAML_LIBRARY cyaml)
|
|
|
|
set(SOURCES
|
|
kubo_file.c
|
|
kubo_input.c
|
|
kubo_command_bar.c
|
|
kubo_bar.c
|
|
kubo_wall.c
|
|
kubo_window.c
|
|
kubo_context.c
|
|
kubo_command.c
|
|
kubo_camera.c
|
|
main.c
|
|
)
|
|
|
|
add_executable(kubo ${SOURCES})
|
|
|
|
if(MSVC)
|
|
target_compile_options(kubo PRIVATE /W4 /WX)
|
|
else()
|
|
target_compile_options(kubo PRIVATE -Wall -Wextra -Werror)
|
|
endif()
|
|
|
|
target_include_directories(kubo PRIVATE ${CYAML_INCLUDE_DIR})
|
|
target_link_libraries(kubo PRIVATE ${CYAML_LIBRARY})
|
|
|
|
target_link_libraries(kubo PRIVATE raylib)
|