Add entry point and debug texts

This commit is contained in:
Grayson Riffe 2025-01-30 12:39:59 -06:00
parent b48df32331
commit 0c0c46e23d
5 changed files with 59 additions and 9 deletions

View File

@ -1,12 +1,14 @@
# NF library CMakeLists.txt # NF library CMakeLists.txt
add_library(NothinFancy STATIC "src/Engine.cpp" "src/include/nf.h" "src/pch.h" "src/util.h" "src/util/log.h" "src/util/log.cpp") add_library(NothinFancy STATIC "src/Engine.cpp" "src/include/nf.h" "src/pch.h" "src/util.h" "src/util/log.h" "src/util/log.cpp" "src/include/nf/EngineConfig.h")
# Use C++20 # Use C++20
set_property(TARGET NothinFancy PROPERTY CXX_STANDARD 20) set_property(TARGET NothinFancy PROPERTY CXX_STANDARD 20)
# Additional include directories
target_include_directories(NothinFancy PUBLIC "src" "src/include")
# Use precompiled header # Use precompiled header
target_precompile_headers(NothinFancy PUBLIC "src/pch.h") target_precompile_headers(NothinFancy PUBLIC "src/pch.h")
target_include_directories(NothinFancy PUBLIC "src/")
# Generate version.h # Generate version.h
find_package(Git) find_package(Git)

View File

@ -1,13 +1,22 @@
// NF startup // NF startup
#include "pch.h" #include "pch.h"
#include "nf/EngineConfig.h"
#include "version.h" #include "version.h"
#include "util.h" #include "util.h"
namespace nf { namespace nf {
void startEngine() { void runEngine(EngineConfig config) {
NFLog(std::format("Nothin' Fancy {}", NFVERSION)); std::string engineStr = std::format("Nothin' Fancy {}", NFVERSION);
NFError("Test error."); std::string gameStr = std::format("{} {}", config.appName, config.appVersion);
NFLog(engineStr);
NFLog(std::format("Starting {}", gameStr));
#ifdef _DEBUG
SetThreadDescription(GetCurrentThread(), L"NF Main Thread");
SetConsoleTitle(std::format("{} Debug Console - {}", engineStr, gameStr).c_str());
#endif
std::cin.get(); std::cin.get();
} }
} }

View File

@ -1,6 +1,28 @@
// NF main public header // NF main public header
#pragma once #pragma once
#include "nf/EngineConfig.h"
namespace nf { namespace nf {
void startEngine(); struct CommandLineArguments {
int argc;
char** argv;
};
EngineConfig configureEngine(CommandLineArguments cmdArgs);
void runEngine(EngineConfig config);
} }
// NF entry point
#ifdef NFENTRY
int main(int argc, char* argv[]) {
nf::EngineConfig config = nf::configureEngine({ argc, argv });
nf::runEngine(config);
return 0;
}
#endif

View File

@ -0,0 +1,14 @@
// EngineConfig struct public header
#pragma once
namespace nf {
struct EngineConfig {
const char* appName;
const char* appVersion;
EngineConfig()
: appName("Nothin' Fancy Game")
, appVersion("v0.1.0")
{}
};
}

View File

@ -1,7 +1,10 @@
// TestGame main file // TestGame main file
#define NFENTRY
#include "nf.h" #include "nf.h"
int main(int argc, char* argv[]) { namespace nf {
nf::startEngine(); EngineConfig configureEngine(CommandLineArguments cmdArgs) {
return 0; EngineConfig config;
return config;
}
} }