mirror of https://github.com/upx/upx.git
CI: fix windows build
This commit is contained in:
parent
72f31787f6
commit
9f00515da4
|
@ -286,7 +286,7 @@ jobs:
|
||||||
set s=%H%\src
|
set s=%H%\src
|
||||||
cat .GITREV.txt
|
cat .GITREV.txt
|
||||||
set /p GITREV=<.GITREV.txt
|
set /p GITREV=<.GITREV.txt
|
||||||
cl -std:c++17 -Zc:__cplusplus -EHsc -J -O2 -W4 -WX -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% -I%H%\vendor -Feupx.exe %s%\*.cpp %s%\util\*.cpp %BDIR%\ucl\ucl.lib %BDIR%\zlib\zlib.lib /link setargv.obj
|
cl -std:c++17 -Zc:__cplusplus -EHsc -J -O2 -W4 -WX -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% -I%H%\vendor -I%H%\vendor\boost-pfr\include -Feupx.exe %s%\*.cpp %s%\util\*.cpp %BDIR%\ucl\ucl.lib %BDIR%\zlib\zlib.lib /link setargv.obj
|
||||||
- name: 'Make artifact'
|
- name: 'Make artifact'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
|
88
src/conf.h
88
src/conf.h
|
@ -743,8 +743,6 @@ struct upx_compress_result_t
|
||||||
// globals
|
// globals
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "util/snprintf.h" // must get included first!
|
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <new>
|
#include <new>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
@ -757,7 +755,11 @@ struct upx_compress_result_t
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#define upx_std_atomic(Type) std::atomic<Type>
|
#define upx_std_atomic(Type) std::atomic<Type>
|
||||||
#endif
|
#endif
|
||||||
|
#if WITH_BOOST_PFR
|
||||||
|
#include <sstream>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "util/snprintf.h" // must get included first!
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "except.h"
|
#include "except.h"
|
||||||
#include "bele.h"
|
#include "bele.h"
|
||||||
|
@ -775,37 +777,6 @@ unsigned membuffer_get_size(MemBuffer &mb);
|
||||||
|
|
||||||
#include "util/xspan.h"
|
#include "util/xspan.h"
|
||||||
|
|
||||||
//#define DOCTEST_CONFIG_DISABLE 1
|
|
||||||
#include <doctest/doctest/parts/doctest_fwd.h>
|
|
||||||
|
|
||||||
#if WITH_BOOST_PFR
|
|
||||||
#include <boost/pfr/io.hpp>
|
|
||||||
template <class A>
|
|
||||||
__acc_noinline std::string pfr_str(const A &a) {
|
|
||||||
std::ostringstream ss;
|
|
||||||
ss << boost::pfr::io(a);
|
|
||||||
return ss.str();
|
|
||||||
}
|
|
||||||
template <class A, class B>
|
|
||||||
__acc_noinline std::string pfr_str(const A &a, const B &b) {
|
|
||||||
std::ostringstream ss;
|
|
||||||
ss << boost::pfr::io(a);
|
|
||||||
ss << ' ';
|
|
||||||
ss << boost::pfr::io(b);
|
|
||||||
return ss.str();
|
|
||||||
}
|
|
||||||
template <class A, class B, class C>
|
|
||||||
__acc_noinline std::string pfr_str(const A &a, const B &b, const C &c) {
|
|
||||||
std::ostringstream ss;
|
|
||||||
ss << boost::pfr::io(a);
|
|
||||||
ss << ' ';
|
|
||||||
ss << boost::pfr::io(b);
|
|
||||||
ss << ' ';
|
|
||||||
ss << boost::pfr::io(c);
|
|
||||||
return ss.str();
|
|
||||||
}
|
|
||||||
#endif // WITH_BOOST_PFR
|
|
||||||
|
|
||||||
// util/dt_check.cpp
|
// util/dt_check.cpp
|
||||||
void upx_compiler_sanity_check();
|
void upx_compiler_sanity_check();
|
||||||
int upx_doctest_check();
|
int upx_doctest_check();
|
||||||
|
@ -865,6 +836,57 @@ int upx_test_overlap ( const upx_bytep buf,
|
||||||
int method,
|
int method,
|
||||||
const upx_compress_result_t *cresult );
|
const upx_compress_result_t *cresult );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
//
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
//#define DOCTEST_CONFIG_DISABLE 1
|
||||||
|
#include <doctest/doctest/parts/doctest_fwd.h>
|
||||||
|
|
||||||
|
#if WITH_BOOST_PFR
|
||||||
|
#include <boost/pfr/io.hpp>
|
||||||
|
template <class A>
|
||||||
|
__acc_noinline std::string pfr_string(const A &a) {
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << boost::pfr::io(a);
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
template <class A, class B>
|
||||||
|
__acc_noinline std::string pfr_string(const A &a, const B &b) {
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << boost::pfr::io(a);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(b);
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
template <class A, class B, class C>
|
||||||
|
__acc_noinline std::string pfr_string(const A &a, const B &b, const C &c) {
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << boost::pfr::io(a);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(b);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(c);
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
template <class A, class B, class C, class D>
|
||||||
|
__acc_noinline std::string pfr_string(const A &a, const B &b, const C &c, const D &d) {
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << boost::pfr::io(a);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(b);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(c);
|
||||||
|
ss << ' ';
|
||||||
|
ss << boost::pfr::io(d);
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
// note: this MUST be a macro and not a function because of implicit temporary variable
|
||||||
|
#define pfr_str(a,...) (pfr_string(a, ##__VA_ARGS__).c_str())
|
||||||
|
#endif // WITH_BOOST_PFR
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// raw_bytes() - get underlying memory from checked buffers/pointers.
|
// raw_bytes() - get underlying memory from checked buffers/pointers.
|
||||||
// This is overloaded by various utility classes like BoundedPtr,
|
// This is overloaded by various utility classes like BoundedPtr,
|
||||||
|
|
|
@ -456,13 +456,13 @@ TEST_CASE("libc snprintf") {
|
||||||
#if WITH_BOOST_PFR
|
#if WITH_BOOST_PFR
|
||||||
TEST_CASE("Boost.PFR") {
|
TEST_CASE("Boost.PFR") {
|
||||||
int i = -1;
|
int i = -1;
|
||||||
CHECK_EQ(strcmp(pfr_str(i).c_str(), "-1"), 0);
|
CHECK_EQ(strcmp(pfr_str(i), "-1"), 0);
|
||||||
BE32 b32;
|
BE32 b32;
|
||||||
b32 = 1;
|
b32 = 1;
|
||||||
LE32 l32;
|
LE32 l32;
|
||||||
l32 = 2;
|
l32 = 2;
|
||||||
CHECK_EQ(strcmp(pfr_str(b32).c_str(), "1"), 0);
|
CHECK_EQ(strcmp(pfr_str(b32), "1"), 0);
|
||||||
CHECK_EQ(strcmp(pfr_str(l32).c_str(), "2"), 0);
|
CHECK_EQ(strcmp(pfr_str(l32), "2"), 0);
|
||||||
struct Foo {
|
struct Foo {
|
||||||
BE16 b16;
|
BE16 b16;
|
||||||
BE32 b32;
|
BE32 b32;
|
||||||
|
@ -478,7 +478,7 @@ TEST_CASE("Boost.PFR") {
|
||||||
foo.l16 = 4;
|
foo.l16 = 4;
|
||||||
foo.l32 = 5;
|
foo.l32 = 5;
|
||||||
foo.l64 = 6;
|
foo.l64 = 6;
|
||||||
CHECK_EQ(strcmp(pfr_str("foo", "=", foo).c_str(), "foo = {1, 2, 3, 4, 5, 6}"), 0);
|
CHECK_EQ(strcmp(pfr_str("foo", "=", foo), "foo = {1, 2, 3, 4, 5, 6}"), 0);
|
||||||
}
|
}
|
||||||
#endif // WITH_BOOST_PFR
|
#endif // WITH_BOOST_PFR
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue