diff options
author | Hop311 <Hop3114@gmail.com> | 2023-07-20 22:33:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-20 22:33:38 +0200 |
commit | 420c2dce47e74c01ff46be991058d543e0c70a6b (patch) | |
tree | 2fced5640d983144fab9fa982f598203d84887b6 | |
parent | 9efd6de04c528587ffe1a05c7ecc9770c4d93f62 (diff) | |
parent | 741cfe452156f7c6365d1a66b6228e15ef660bf6 (diff) |
Merge pull request #7 from OpenVicProject/dataloading-skeleton
Dataloading Skeleton
-rw-r--r-- | SConstruct | 45 | ||||
-rw-r--r-- | src/headless/main.cpp | 22 | ||||
-rw-r--r-- | src/openvic/Simulation.hpp | 5 | ||||
-rw-r--r-- | src/openvic/dataloader/Dataloader.hpp | 16 |
4 files changed, 88 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct new file mode 100644 index 0000000..50edb8f --- /dev/null +++ b/SConstruct @@ -0,0 +1,45 @@ +#!/usr/bin/env python +import os +import sys +from glob import glob +from pathlib import Path + +def GlobRecursive(pattern, nodes=['.']): + import SCons + results = [] + for node in nodes: + nnodes = [] + for f in Glob(str(node) + '/*', source=True): + if type(f) is SCons.Node.FS.Dir: + nnodes.append(f) + results += GlobRecursive(pattern, nnodes) + results += Glob(str(node) + '/' + pattern, source=True) + return results + +# For future reference: +# - CCFLAGS are compilation flags shared between C and C++ +# - CFLAGS are for C-specific compilation flags +# - CXXFLAGS are for C++-specific compilation flags +# - CPPFLAGS are for pre-processor flags +# - CPPDEFINES are for pre-processor defines +# - LINKFLAGS are for linking flags +env = Environment( + CPPDEFINES=["OPENVIC_HEADLESS_SIM"] +) + +# Require C++20 +if sys.platform == "win32" or sys.platform == "msys": + env.Append(CXXFLAGS=["/std:c++20", "/EHsc"]) +else: + env.Append(CXXFLAGS=["-std=c++20"]) + +# Tweak this if you want to use different folders, or more folders, to store your source code in. +paths = ["src"] +env.Append(CPPPATH=paths) +sources = GlobRecursive("*.cpp", paths) + +program = env.Program("headless-sim", sources) + + +Default(program) + diff --git a/src/headless/main.cpp b/src/headless/main.cpp new file mode 100644 index 0000000..70a57a9 --- /dev/null +++ b/src/headless/main.cpp @@ -0,0 +1,22 @@ +#ifdef OPENVIC_HEADLESS_SIM +#include <iostream> +#include <string> +#include "openvic/Simulation.hpp" +#include "openvic/dataloader/Dataloader.hpp" + + +int main() { + std::cout << "HEADLESS SIMULATION" << std::endl; + + + std::string vic2FolderLocation = ""; + if (vic2FolderLocation.length() <= 0) { + std::cout << "Path to Victoria 2 folder not specified. Manually specify location: "; + std::cin >> vic2FolderLocation; + } + std::filesystem::path path(vic2FolderLocation); + + OpenVic::Simulation sim; + std::cout << (OpenVic::Dataloader::loadDir(path, sim) ? "Dataloader suceeded" : "Dataloader failed") << std::endl; +} +#endif
\ No newline at end of file diff --git a/src/openvic/Simulation.hpp b/src/openvic/Simulation.hpp new file mode 100644 index 0000000..b0c2a19 --- /dev/null +++ b/src/openvic/Simulation.hpp @@ -0,0 +1,5 @@ +#pragma once + +namespace OpenVic { + class Simulation {}; +}
\ No newline at end of file diff --git a/src/openvic/dataloader/Dataloader.hpp b/src/openvic/dataloader/Dataloader.hpp new file mode 100644 index 0000000..062f3d5 --- /dev/null +++ b/src/openvic/dataloader/Dataloader.hpp @@ -0,0 +1,16 @@ +#pragma once +#include <filesystem> +#include "../Simulation.hpp" + +namespace OpenVic { + class Dataloader { + public: + enum class LoadingMode { + DL_COMPATIBILITY + }; + + static bool loadDir(std::filesystem::path p, Simulation& sim, LoadingMode loadMode = LoadingMode::DL_COMPATIBILITY) { + return true; + } + }; +}
\ No newline at end of file |