aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2017-07-26 08:11:42 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2017-07-26 08:12:01 +0200
commitf29d5dbd04da249604b970d0edd5695cd7049e7f (patch)
tree2aa0a7451e4dde9758a80f52a399fefff8c16355
parent8537187d421366e434b1b4b5bc6b379a4d5208ed (diff)
parent0be03c71bd91db25f30bcf4d45facf1e26dcfd30 (diff)
Merge #10899: [test] Qt: Use _putenv_s instead of setenv on Windows builds
0be03c7 Qt: Use _putenv_s instead of setenv on Windows builds (Brian McMichael) Pull request description: Fixes https://github.com/bitcoin/bitcoin/issues/10836 Error message I would get on `make`: ``` ... CXXLD bench/bench_bitcoin.exe OBJCXXLD qt/bitcoin-qt.exe qt/test/test_main.cpp: In function ‘int main(int, char**)’: qt/test/test_main.cpp:64:43: error: ‘setenv’ was not declared in this scope setenv("QT_QPA_PLATFORM", "minimal", 0); ^ make[2]: *** [qt/test/qt_test_test_bitcoin_qt-test_main.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/home/bmcmichael/Projects/bcoin/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/bmcmichael/Projects/bcoin/src' make: *** [all-recursive] Error 1 ``` `setenv` function is not available from the Microsoft runtime library. Need to use `_putenv_s` instead. This solution tells the compiler to use `_putenv_s` on `WIN32` compilation (Note: this also works on 64-bit Windows instances.) and `setenv` everywhere else. I've tested builds on Windows 10 x64 and Ubuntu 16.04 with this code. Tree-SHA512: d53c996c890e3c6f22b4f2dcca718bef9168f19a6d4a29b8ff13391bfc0c8ea9c1cd16782b47c25b156dcbdff18bb19e23bfd5f6fefb1f373c9d5454a13fc969
-rw-r--r--src/qt/test/test_main.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp
index cae18f41a5..1b28a285f1 100644
--- a/src/qt/test/test_main.cpp
+++ b/src/qt/test/test_main.cpp
@@ -59,7 +59,11 @@ int main(int argc, char *argv[])
// Prefer the "minimal" platform for the test instead of the normal default
// platform ("xcb", "windows", or "cocoa") so tests can't unintentially
// interfere with any background GUIs and don't require extra resources.
- setenv("QT_QPA_PLATFORM", "minimal", 0);
+ #if defined(WIN32)
+ _putenv_s("QT_QPA_PLATFORM", "minimal");
+ #else
+ setenv("QT_QPA_PLATFORM", "minimal", 0);
+ #endif
// Don't remove this, it's needed to access
// QApplication:: and QCoreApplication:: in the tests