Switch to CPM package manager
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
1269
cmake/CPM.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user