From cdc72478d3041f3f70961c4e4c039c9672996edf Mon Sep 17 00:00:00 2001 From: Mike Nolan Date: Wed, 16 Apr 2025 12:39:49 -0500 Subject: [PATCH] Make CROSSLANG_CONFIG a environment variable --- CMakeLists.txt | 4 ++++ src/runtime_methods/env.cpp | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bff314..1d1cd9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ option(CROSSLANG_ENABLE_TERMIOS "Enable termios (For changing terminal options)" option(CROSSLANG_ENABLE_PLATFORM_FOLDERS "Enable platform folders" ON) option(CROSSLANG_SHARED_EXECUTABLES "Link with libcrosslang_shared" ON) option(CROSSLANG_FETCHCONTENT "Use fetchcontent" ON) +option(CROSSLANG_ENABLE_CONFIG_ENVVAR "Allow setting config directory via the environment variable CROSSLANG_CONFIG" ON) option(CROSSLANG_CUSTOM_CONSOLE "Enable custom Console" OFF) @@ -50,6 +51,9 @@ else() find_package(TessesFramework REQUIRED) endif() function(CROSSLANG_LINK_DEPS CROSSLANG_TARGET_NAME) +if(CROSSLANG_ENABLE_CONFIG_ENVVAR) +target_compile_definitions(${CROSSLANG_TARGET_NAME} PUBLIC CROSSLANG_ENABLE_CONFIG_ENVVAR) +endif() if(CROSSLANG_ENABLE_PROCESS) target_compile_definitions(${CROSSLANG_TARGET_NAME} PUBLIC CROSSLANG_ENABLE_PROCESS) endif() diff --git a/src/runtime_methods/env.cpp b/src/runtime_methods/env.cpp index 20bb1f6..da73308 100644 --- a/src/runtime_methods/env.cpp +++ b/src/runtime_methods/env.cpp @@ -25,6 +25,13 @@ namespace Tesses::CrossLang } Tesses::Framework::Filesystem::VFSPath GetCrossLangConfigDir() { + #if defined(CROSSLANG_ENABLE_CONFIG_ENVVAR) + char* conf = std::getenv("CROSSLANG_CONFIG"); + if(conf != NULL) + { + return std::string(conf); + } + #endif Tesses::Framework::Filesystem::VFSPath p; #if defined(CROSSLANG_ENABLE_PLATFORM_FOLDERS) p=sago::getConfigHome();