Switch to CPM package manager

This commit is contained in:
2024-10-19 18:10:11 +02:00
parent 2a43299a15
commit 45a1c77e90
6 changed files with 1311 additions and 73 deletions

View File

@@ -1,5 +1,4 @@
cmake_minimum_required(VERSION 3.20)
cmake_policy(SET CMP0135 NEW)
cmake_minimum_required(VERSION 3.24)
project(
Fall-Fever
@@ -14,68 +13,16 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(FetchContent)
if(PROJECT_IS_TOP_LEVEL)
include(cmake/CPM.cmake)
# EnTT
FetchContent_Declare(
entt
SYSTEM
URL https://github.com/skypjack/entt/releases/download/v3.13.2/entt-v3.13.2.tar.gz
)
FetchContent_MakeAvailable(entt)
# GLFW
FetchContent_Declare(
glfw
SYSTEM
URL https://github.com/glfw/glfw/releases/download/3.4/glfw-3.4.zip
)
# nlohmann-json
FetchContent_Declare(
json
SYSTEM
URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz
)
FetchContent_MakeAvailable(json)
set(GLFW_BUILD_DOCS OFF)
set(GLFW_BUILD_EXAMPLES OFF)
set(GLFW_BUILD_TESTS OFF)
set(GLFW_INSTALL OFF)
FetchContent_MakeAvailable(glfw)
# fx-gltf
FetchContent_Declare(
fx-gltf
SYSTEM
URL https://github.com/jessey-git/fx-gltf/archive/refs/tags/v2.0.0.tar.gz
)
set(FX_GLTF_BUILD_TESTS OFF)
set(FX_GLTF_INSTALL OFF)
FetchContent_MakeAvailable(fx-gltf)
# glm
FetchContent_Declare(
glm
SYSTEM
URL https://github.com/g-truc/glm/archive/refs/tags/1.0.1.tar.gz
)
FetchContent_MakeAvailable(glm)
# glm
FetchContent_Declare(
spdlog
SYSTEM
URL https://github.com/gabime/spdlog/archive/refs/tags/v1.14.1.tar.gz
)
FetchContent_MakeAvailable(spdlog)
CPMAddPackage(NAME EnTT URL "https://github.com/skypjack/entt/releases/download/v3.13.2/entt-v3.13.2.tar.gz" OVERRIDE_FIND_PACKAGE)
CPMAddPackage(NAME nlohmann_json URL "https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz" OVERRIDE_FIND_PACKAGE)
CPMAddPackage(NAME glfw3 URL "https://github.com/glfw/glfw/releases/download/3.4/glfw-3.4.zip" OPTIONS "GLFW_BUILD_DOCS OFF" "GLFW_INSTALL OFF" OVERRIDE_FIND_PACKAGE)
CPMAddPackage(NAME fx-gltf URL "https://github.com/jessey-git/fx-gltf/archive/refs/tags/v2.0.0.tar.gz" OPTIONS "FX_GLTF_BUILD_TESTS OFF" "FX_GLTF_INSTALL OFF" OVERRIDE_FIND_PACKAGE)
CPMAddPackage(NAME glm URL "https://github.com/g-truc/glm/archive/refs/tags/1.0.1.tar.gz" OVERRIDE_FIND_PACKAGE)
CPMAddPackage(NAME spdlog URL "https://github.com/gabime/spdlog/archive/refs/tags/v1.14.1.tar.gz" OVERRIDE_FIND_PACKAGE)
endif()
add_subdirectory(${PROJECT_SOURCE_DIR}/lib)
add_subdirectory(${PROJECT_SOURCE_DIR}/src)

View File

@@ -35,7 +35,8 @@
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always"
"CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always",
"GLFW_BUILD_X11": "OFF"
}
}
]

1269
cmake/CPM.cmake Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,8 @@
CPMAddPackage(NAME argparse URL "https://github.com/p-ranav/argparse/archive/refs/tags/v3.1.tar.gz")
add_executable(Fall-Fever
main.cpp
controller.cpp
)
target_link_libraries(Fall-Fever PRIVATE fever_core)
target_link_libraries(Fall-Fever PRIVATE fever_core argparse)

View File

@@ -2,14 +2,26 @@
#include "util/log.h"
#include <GLFW/glfw3.h>
#include <argparse/argparse.hpp>
#include <spdlog/spdlog.h>
auto main(int argc, char *argv[]) -> int
auto main(int argc, char* argv[]) -> int
{
auto arguments = std::span(argv, argc);
Log::initialize();
argparse::ArgumentParser program("Fall-Fever");
program.add_argument("model").help("model file to load");
try {
program.parse_args(argc, argv);
} catch (std::exception const& err) {
std::cerr << err.what() << std::endl;
std::cerr << program;
return 1;
}
auto model = program.get<std::string>("model");
// Initialize GLFW
if (glfwInit() == 0) {
spdlog::critical("Could not initialize GLFW");
@@ -18,7 +30,7 @@ auto main(int argc, char *argv[]) -> int
{
// Create controller
Controller controller(arguments[1]);
Controller controller(model);
controller.run();
}

View File

@@ -1,12 +1,19 @@
find_package(EnTT REQUIRED)
find_package(fx-gltf REQUIRED)
find_package(glfw3 REQUIRED)
find_package(glm REQUIRED)
find_package(nlohmann_json REQUIRED)
find_package(spdlog REQUIRED)
add_library(fever_core
components/transform.cpp
core/camera.cpp
core/game_loop.cpp
core/glad.cpp
core/graphics/framebuffer.cpp
core/graphics/image.cpp
core/graphics/material.cpp
core/graphics/mesh.cpp
core/camera.cpp
core/game_loop.cpp
core/glad.cpp
core/light.cpp
core/render.cpp
core/shader.cpp