diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2017-07-26 08:11:42 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2017-07-26 08:12:01 +0200 |
commit | f29d5dbd04da249604b970d0edd5695cd7049e7f (patch) | |
tree | 2aa0a7451e4dde9758a80f52a399fefff8c16355 | |
parent | 8537187d421366e434b1b4b5bc6b379a4d5208ed (diff) | |
parent | 0be03c71bd91db25f30bcf4d45facf1e26dcfd30 (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.cpp | 6 |
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 |