From 55ab1f564286c6f3e986bf68ebb271132a749c6f Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 15 Dec 2022 11:05:31 +0100 Subject: Add clang support. --- src/configure.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/configure.cc') diff --git a/src/configure.cc b/src/configure.cc index 86538ab..50a7c32 100644 --- a/src/configure.cc +++ b/src/configure.cc @@ -32,6 +32,7 @@ namespace ctor { std::optional includedir; std::optional libdir; +std::map conf_values; } bool hasConfiguration(const std::string& key) @@ -46,6 +47,11 @@ bool hasConfiguration(const std::string& key) return true; } + if(ctor::conf_values.find(key) != ctor::conf_values.end()) + { + return true; + } + const auto& c = configuration(); return c.tools.find(key) != c.tools.end(); } @@ -63,6 +69,11 @@ const std::string& getConfiguration(const std::string& key, return *ctor::libdir; } + if(ctor::conf_values.find(key) != ctor::conf_values.end()) + { + return ctor::conf_values[key]; + } + const auto& c = configuration(); if(hasConfiguration(key)) { @@ -376,6 +387,18 @@ int regenerateCache(const Settings& default_settings, std::string build_ar = locate(build_arch, ar_prog); std::string build_ld = locate(build_arch, ld_prog); + // Store current values for execution in this execution context. + if(!ctor_includedir.empty()) + { + ctor::conf_values[cfg::ctor_includedir] = ctor_includedir; + } + if(!ctor_libdir.empty()) + { + ctor::conf_values[cfg::ctor_libdir] = ctor_libdir; + } + ctor::conf_values[cfg::host_cxx] = host_cxx; + ctor::conf_values[cfg::build_cxx] = build_cxx; + std::cout << "Writing results to: " << configurationFile.string() << "\n"; { std::ofstream istr(configurationFile); -- cgit v1.2.3