summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/minicargo/build.cpp8
-rw-r--r--tools/minicargo/manifest.cpp1
2 files changed, 8 insertions, 1 deletions
diff --git a/tools/minicargo/build.cpp b/tools/minicargo/build.cpp
index b7be7607..62fd48c5 100644
--- a/tools/minicargo/build.cpp
+++ b/tools/minicargo/build.cpp
@@ -9,6 +9,7 @@
#include <vector>
#include <algorithm>
#include <sstream> // stringstream
+#include <cstdlib> // setenv
#ifdef _WIN32
# include <Windows.h>
#else
@@ -490,7 +491,11 @@ bool Builder::build_library(const PackageManifest& manifest) const
// - Run the script and put output in the right dir
auto out_file = output_dir_abs / "build_" + manifest.name().c_str() + ".txt";
auto out_dir = output_dir_abs / "build_" + manifest.name().c_str();
+#if _WIN32
+ CreateDirectoryA(out_dir.str().c_str(), NULL);
+#else
mkdir(out_dir.str().c_str(), 0755);
+#endif
// TODO: Environment variables (key-value list)
StringListKV env;
env.push_back("CARGO_MANIFEST_DIR", manifest.directory().to_absolute());
@@ -549,6 +554,7 @@ bool Builder::spawn_process(const char* exe_name, const StringList& args, const
DEBUG("Calling " << cmdline_str);
#if 0
+ // TODO: Determine required minimal environment.
::std::stringstream environ_str;
environ_str << "TEMP=" << getenv("TEMP") << '\0';
environ_str << "TMP=" << getenv("TMP") << '\0';
@@ -560,7 +566,7 @@ bool Builder::spawn_process(const char* exe_name, const StringList& args, const
#else
for(auto kv : env)
{
- setenv(kv.first, kv.second);
+ _putenv_s(kv.first, kv.second);
}
#endif
diff --git a/tools/minicargo/manifest.cpp b/tools/minicargo/manifest.cpp
index 7b48d1d7..cfbe7dc9 100644
--- a/tools/minicargo/manifest.cpp
+++ b/tools/minicargo/manifest.cpp
@@ -10,6 +10,7 @@
#ifdef _WIN32
+# define TARGET_NAME "i586-windows-msvc"
# define CFG_UNIX false
# define CFG_WINDOWS true
#else