diff options
author | ClarkeCode <clarke.john.robert@gmail.com> | 2023-06-14 05:41:28 +0200 |
---|---|---|
committer | ClarkeCode <clarke.john.robert@gmail.com> | 2023-06-18 07:04:24 +0200 |
commit | 741cfe452156f7c6365d1a66b6228e15ef660bf6 (patch) | |
tree | 893e5b7b299eff272ec186bdaebc8d91e5ee0bd5 /SConstruct | |
parent | 5433008d163e7e85cd7ee668e769c649e318f491 (diff) |
Rough draft of compiling headless simulation
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 45 |
1 files changed, 45 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) + |