kubo/CMakeLists.txt

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)